Что нового

поиск слов по совпадению символов в тексте

gideon

Новичок
Сообщения
20
Репутация
0
Всем доброго дня подскажите регулярное выражение так как в них не сильно силён
нужно найти слово в тексте по набору символов которые могут быть как в начале слова так и в середине или в конце поиск, по всем совпадениям
я пробовал
Код:
StringRegExp($aArray, '(?i)\|(тут набор символов[^|]*?)\|', 3)
но он ищет только в начале слова
 

Webarion

Осваивающий
Сообщения
143
Репутация
24
Код:
#include <Array.au3>

; создаём многострочный текст и 4 элемента для поиска 'тут набор символов'
Local $sStr = 'тут набор символов всем доброго дня подскажите тут набор символов регулярное выражение ' & @CRLF & 'так как в них не сильно силён нужно найти слово в тексте по набору тут набор символов которые могут быть как в начале слова ' & @CRLF & 'так и в середине или в конце поиск, по всем совпадениям я пробовал тут набор символов'

$aArr = StringRegExp($sStr,'тут набор символов',3); ищем
_ArrayDisplay($aArr); показываем результат

Но, многое зависит ещё от самих символов. Если будут встречаться управляющие, их придётся дополнительно экранировать.
 
Автор
G

gideon

Новичок
Сообщения
20
Репутация
0
Код:
#include <Array.au3>

; создаём многострочный текст и 4 элемента для поиска 'тут набор символов'
Local $sStr = 'тут набор символов всем доброго дня подскажите тут набор символов регулярное выражение ' & @CRLF & 'так как в них не сильно силён нужно найти слово в тексте по набору тут набор символов которые могут быть как в начале слова ' & @CRLF & 'так и в середине или в конце поиск, по всем совпадениям я пробовал тут набор символов'

$aArr = StringRegExp($sStr,'тут набор символов',3); ищем
_ArrayDisplay($aArr); показываем результат

Но, многое зависит ещё от самих символов. Если будут встречаться управляющие, их придётся дополнительно экранировать.
нужно что бы при поиске к примеру "волов" то есть не полный набор слова в результат выпало все слова"символов" количество букв может быть разный
 

Webarion

Осваивающий
Сообщения
143
Репутация
24
нужно что бы при поиске к примеру "волов" то есть не полный набор слова в результат выпало все слова"символов" количество букв может быть разный
Код:
#include <Array.au3>

Local $sStr = 'Коммуникация и место коммуникации' & @CRLF & ' и обучения кадров компьютерных, требуют от нас анализа направлений прогрессивного развития коммандования.' & @CRLF & 'Равным образом дальнейшее развитие различных форм деятельности (комьюнити) способствует подготовки и реализации системы обучения коммерческих ' & @CRLF & 'кадров, соответствует насущным потребностям коммунны'

;1
Local $sSearch = 'коммун'
Local $aArr = _Search($sStr, $sSearch)
_ArrayDisplay($aArr, 'Найденные ' & $sSearch)
;2
Local $sSearch = 'ком'
Local $aArr = _Search($sStr, $sSearch)
_ArrayDisplay($aArr, 'Найденные ' & $sSearch)
;3
Local $sSearch = 'м'
Local $aArr = _Search($sStr, $sSearch)
_ArrayDisplay($aArr, 'Найденные ' & $sSearch)
;4
Local $sSearch = 'я'
Local $aArr = _Search($sStr, $sSearch)
_ArrayDisplay($aArr, 'Найденные ' & $sSearch)


Func _Search($sText, $sSearch)
    ; [a-zа-яё] - группа символов включённых в поиск
    ; [.,\)] - группа символов которые могут быть в конце слова, но исключаемые из выдачи
    Return StringRegExp($sText, '(?i)([a-zа-яё]*' & $sSearch & '[a-zа-яё]*)(?:[.,\)]|\h+|\R|$)', 3)
EndFunc   ;==>_Search

Вроде как-то так. Если есть необходимость ловить словосочетания, скорее всего придётся создавать базу с этими словосочетаниями и сравнивать по базе.
 
Последнее редактирование:

xXx

╚{■_■}╗
Меценат
Сообщения
248
Репутация
95
Код:
$aArr =  StringRegExp($sStr, '(?i)[^\h]*?' & StringRegExpReplace($sSearch, '([^А-Ёё\w\s])', '\\$1') & '[^\h]*?', 3)
__________________________________________________________________________________
Ответил в теме
 
Последнее редактирование:
Автор
G

gideon

Новичок
Сообщения
20
Репутация
0
Код:
$aArr =  StringRegExp($sStr, '(?i)[^\h]*?' & StringRegExpReplace($sSearch, '([^А-Ёё\w\s])', '\\$1') & '[^\h]*?', 3)
День добрый как раз по теме combobox поиск в выпадающем списке
поиск по части слова не по первым символам

Код:
$aArray = StringRegExp($stest & '|', '(?i)\|(' & StringRegExpReplace($sComboRead, '([^А-яЁё\w\s])', '\\$1') & '[^|]*?)\|', 3)
 
Верх