Автор Тема: Найти часть теста по заданному шаблону  (Прочитано 2229 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн [email protected] [?]

  • Новичок
  • *
  • Сообщений: 15
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Подскажите пожалуйста ...

Как с помощью StringRegExp проверить например в строках хххх://vasya.com/Content.html?pid=JBXfc968361d1a1 и хххх://vasya.com/Content.html?pid=JSF00c9683615144
наличия блока =J?? где ?? обязательно буква и обязательно заглавная?
В текстовом редакторе ищется без проблем по "=J\u{1,2}"  а скрипт не находит ничего ...

Русское сообщество AutoIt

Найти часть теста по заданному шаблону
« Отправлен: Март 01, 2017, 01:31:48 »

Оффлайн sngr [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 839
  • Репутация: 347
    • Награды
  • Версия AutoIt: 3.3.8.1
=J[A-Z]{1,2}

Оффлайн [email protected] [?]

  • Новичок
  • *
  • Сообщений: 15

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
=J[A-Z]{1,2}

Большое спасибо, но таким образом находится еще и вариант =J?X где Х - цифра. От строки =JA4 ответ содержит =JA.
Смена на =J[A-Z]{2,2} исправила ситуацию.


Добавлено: Март 01, 2017, 07:51:46
забыл спросить главное ...
А почему не работает комбинация "=J\u{1,2}" или "=J\u{2,2}" ?
« Последнее редактирование: Март 01, 2017, 07:51:46 от [email protected], Причина: Объединение сообщений »

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1172
  • Репутация: 164
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
...А почему не работает комбинация "=J\u{1,2}" или "=J\u{2,2}" ?
Потому что "Гладиолус". :)

Русское сообщество AutoIt

Re: Найти часть теста по заданному шаблону
« Ответ #3 Отправлен: Март 01, 2017, 08:49:50 »

Оффлайн [email protected] [?]

  • Новичок
  • *
  • Сообщений: 15

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
О как интересно ...

Вот описание из справки:
Элементы шаблона
\u - любая заглавная буква (A-Z)

А по вашей ссылке, я что-то не вижу варианта "любая заглавная буква (A-Z)".

Оффлайн Alofa [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1172
  • Репутация: 164
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
... А по вашей ссылке, я что-то не вижу варианта...
Ну нет - так нет. :-X

Кстати pattern мог быть и таким: "=J[[:upper:]]{2}".

Оффлайн [email protected] [?]

  • Новичок
  • *
  • Сообщений: 15

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Спасибо.
Ну и последнее, хотя вопрос уже закрыт... Ну кто ответит, тот ответит, за что ему большое спасибо.

А вот из такой комбинации, как получить два разных значения?
JBXfc968361d1a1,JBAfc128379d3fe

Ну чтобы сначала нашлось JBXfc968361d1a1 без запятой, а потом вторая часть.

Оффлайн Dima1337 [?]

  • Новичок
  • *
  • Сообщений: 154
  • Репутация: 17
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Получите эту строку, после чего разделите ее...
Поиск: https://autoit-script.ru/index.php?topic=5911.0

Правильный вопрос - полдела!

Русское сообщество AutoIt

Re: Найти часть теста по заданному шаблону
« Ответ #7 Отправлен: Март 01, 2017, 15:41:30 »

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3547
  • Репутация: 933
    • Награды
  • Версия AutoIt: 3.3.14.0
[email protected]
Цитировать
Вот описание из справки:
Элементы шаблона
\u - любая заглавная буква (A-Z)
Что за справка? Почему не знаю?

Цитировать
не вижу варианта "любая заглавная буква (A-Z)"
Потому что его там нет.
Зато есть такой вариант: \u означает, что следующий символ регулярного выражения преобразуется в верхний регистр
А озаглавлена таблица так: Эти флаги не действуют в AutoIt3
Кстати, в английской справке \u вообще не упоминается.

Цитировать
из такой комбинации, как получить два разных значения
Код: AutoIt [Выделить]
#include <Array.au3>
$s = "JBXfc968361d1a1,JBAfc128379d3fe"
$a = StringRegExp($s, "(.*),(.*)", 1)
_ArrayDisplay($a)
$a = StringRegExp($s, "[^,]{15}", 3)
_ArrayDisplay($a)
$a = StringRegExp($s, "[A-Za-z0-9]{15}", 3)
_ArrayDisplay($a)
$a = StringSplit($s, ",")
_ArrayDisplay($a)


Оффлайн [email protected] [?]

  • Новичок
  • *
  • Сообщений: 15

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Спасибо!
Ну а справка вроде та, что здесь обитает в формате .chm

v3.2.4.6
©1999-2007 Jonathan Bennett & AutoIt Team
AutoIt v3 Homepage
© Translation into Russian (beta), Valery Ivanov
Obninsk, Russia, 1999-2007

Онлайн InnI [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 3547
  • Репутация: 933
    • Награды
  • Версия AutoIt: 3.3.14.0
[email protected]
Цитировать
v3.2.4.6
Вы на версию-то внимание обратили?

Вот здесь правильная справка: Развитие русской справки

Оффлайн inververs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 2135
  • Репутация: 459
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
[email protected]
 и на год

Русское сообщество AutoIt

Re: Найти часть теста по заданному шаблону
« Ответ #11 Отправлен: Март 01, 2017, 17:14:01 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
2 Ответов
2605 Просмотров
Последний ответ Февраль 20, 2012, 09:31:19
от kibermag1
0 Ответов
1267 Просмотров
Последний ответ Октябрь 20, 2012, 22:27:53
от ypor
6 Ответов
2344 Просмотров
Последний ответ Декабрь 02, 2012, 15:31:59
от shift72
4 Ответов
2361 Просмотров
Последний ответ Май 14, 2013, 13:48:30
от Вовчик55
0 Ответов
1083 Просмотров
Последний ответ Май 14, 2013, 09:56:40
от madmasles
5 Ответов
3110 Просмотров
Последний ответ Июнь 18, 2013, 04:05:50
от Andrey_A
0 Ответов
1531 Просмотров
Последний ответ Июль 27, 2013, 23:43:25
от firex
10 Ответов
5814 Просмотров
Последний ответ Сентябрь 22, 2013, 21:20:13
от Юрий
0 Ответов
1013 Просмотров
Последний ответ Сентябрь 21, 2013, 09:06:04
от madmasles
8 Ответов
1628 Просмотров
Последний ответ Июль 11, 2015, 00:10:17
от Tapok