Что нового

[RegExp] Поиск строк между фигурными скобками содержащие букву "А"

rusreg79

Продвинутый
Сообщения
159
Репутация
57
Как в данном примере отобрать только те строки (между скобками {}), которые содержат букву "А" .
Понимаю как это сделать в два StringRegExp, но хотелось бы обойтись одним.

Код:
$text = "{text C text} {text B text} {text A text} {text C text} {text A text} {text B text} ..."
$array = StringRegExp($text, '{(.*?)}', 3)

For $i = 0 to UBound($array) - 1
	ConsoleWrite($array[$i]  & @LF)
Next
 

asdf8

Скриптер
Сообщения
564
Репутация
152
Re: [RegExp] Найти строки одним StringRegExp

rusreg79 [?]
Как в данном примере отобрать только те строки (между скобками {}), которые содержат букву "А" .
Код:
$array = StringRegExp($text, '{([^\{\}]*А[^\{\}]*)}', 3)
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Re: [RegExp] Найти строки одним StringRegExp

{([^{}]+?\bA\b[^{}]+)}
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Re: [RegExp] Найти строки одним StringRegExp

Вариант:
Код:
#Include<Array.au3>
$sText = "{text C text} {text B text} {text A text} {text C text} {text A text} {text B text} ..."
;$sPatern = "{[^}A]*A[^}]*}"
$sPatern = "{([^}A]*A[^}]*)}"; так наверное 
$aResult = StringRegExp( $sText, $sPatern, 3 )
_ArrayDisplay($aResult, ' Test Result ')



Добавлено:
Сообщение автоматически объединено:

Можно даже так (если не вылезет какое исключение)
Код:
$sPatern = "{([^}]*A[^}]*)}"
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [RegExp] Найти строки одним StringRegExp

rusreg79
Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[RegExp] Найти строки одним StringRegExp" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Администратор.
 
Автор
R

rusreg79

Продвинутый
Сообщения
159
Репутация
57
Re: [RegExp] Найти строки одним StringRegExp

Как переделать, чтобы находило строки оканчиваемые: ',}' (скобка с запятой)
Код:
#Include<Array.au3>
$sText = "{id text C text ,} {id text B text ,} {id text A145 text ,}  {id text C text ,}  {id text A145 text ,}  {id text B text ,}  ..."

$first = '{id'  
$mid = 'A145'   
$last = '}'     ;Нужно находить не '}', а ',}'
$aResult = StringRegExp($sText, $first&"([^}]*"&$mid&"[^}]*)"&$last, 3)

_ArrayDisplay($aResult, ' Test Result ')
 

gregaz

AutoIT Гуру
Сообщения
1,166
Репутация
299
Re: [RegExp] Найти строки одним StringRegExp

Без реакции на педупреждение получить можно только бан, но не помощь ;)
 
Автор
R

rusreg79

Продвинутый
Сообщения
159
Репутация
57
Re: [RegExp] Поиск строк содержащих нужное слово

Тему переименовал
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [RegExp] Поиск строк содержащих нужное слово

rusreg79 [?]
Тему переименовал
Оно не стало лучше.
У тебя в сообщении, в первой же строке уже содержится корректное название. Нужно только сократить и переоформить, т.ч из этого (плюс с текущего названия темы):
Как в данном примере отобрать только те строки (между скобками {}), которые содержат букву "А" .
получаем это:
Поиск строк между фигурными скобками содержащие букву "А"

Неужели это так сложно, тем более что это описывается в инструкции по ссылке в предупреждении, которую почему то многие игнорируют.
 
Верх