Как создать регулярное выражение для соответствия слова в начале строки. Мы ищем совпадение stop
в начале строки, и все может следовать за ней.
Например, выражение должно соответствовать:
stop
stop random
stopping
Спасибо.
Как создать регулярное выражение для соответствия слова в начале строки. Мы ищем совпадение stop
в начале строки, и все может следовать за ней.
Например, выражение должно соответствовать:
stop
stop random
stopping
Спасибо.
Если вы хотите совместить только строки, начинающиеся с остановки, используйте
^stop
Если вы хотите сопоставить строки, начинающиеся со слова stop, а затем пробел
^stop\s
Или, если вы хотите сопоставить строки, начинающиеся со слова stop, а затем пробел или любой другой символ без слова, который вы можете использовать (разрешающий вам регулярный цвет)
^stop\W
С другой стороны, то, что следует, соответствует слову в начале строки для большинства ароматизаторов регулярных выражений (в этих вариантах \w соответствует противоположность \W)
^\w
Если ваш вкус не имеет ярлыка \w, вы можете использовать
^[a-zA-Z0-9]+
Будьте осторожны, что эта вторая идиома будет соответствовать только буквам и цифрам, без символа.
Проверьте руководство по аромату регулярного выражения, чтобы узнать, какие ярлыки разрешены, и что именно они соответствуют (и как они относятся к Unicode.)
Попробуйте следующее:
/^stop.*$/
Пояснение:
Если вы хотите, чтобы эта остановка сопровождалась пробелом, вы можете изменить RegEx так:
/^stop\s+.*$/
Примечание. Также имейте в виду, что в RegEx выше требуется, чтобы за стоповым словом пробега пробел! Поэтому он не будет соответствовать строке, содержащей только: stop
Если вы хотите сопоставить что-либо после остановки слова не только в начале строки, вы можете использовать: \bstop.*\b
- слово, за которым следует строка
Или, если вы хотите совместить слово в строке, используйте \bstop[a-zA-Z]*
- только слова, начинающиеся с остановки
Или начало строк с остановкой ^stop[a-zA-Z]*
только для слова - только первое слово
Вся строка ^stop.*
- первая строка строки
И если вы хотите сопоставить каждую строку, начинающуюся с stop, включая новые строки, используйте: /^stop.*/s
- многострочная строка, начинающаяся с остановки
/stop([a-zA-Z])+/
Будет соответствовать любое слово остановки (остановка, остановка, остановка и т.д.)
Однако, если вы просто хотите совместить "stop" в начале строки
/^stop/
будет делать: D
Если вы хотите сопоставить все, что начинается с "stop", включая "stop going", "stop" и "stopping" использовать:
^stop
Если вы хотите совместить слово stop с надписью "останавливаться", "остановить это", но не "останавливаться", а не "останавливать", используйте:
^stop\W
Я бы посоветовал использовать простой подход с регулярным выражением к этой проблеме. Слишком много слов, которые являются подстроками других несвязанных слов, и вы, вероятно, будете сумасшедшими, пытаясь переопределить более простые уже предоставленные решения.
Вы хотите, по крайней мере, наивный алгоритм сушки (попробуйте ствол Портера, там доступен бесплатный код на большинстве языков) для обработки текста в первую очередь. Сохраните этот обработанный текст и предварительно обработанный текст в двух отдельных массивах с пространственным разделением. Убедитесь, что каждый не-алфавитный символ также получает свой собственный индекс в этом массиве. Какой бы ни был список слов, которые вы фильтруете, также создайте их.
Следующим шагом будет поиск индексов массива, которые соответствуют вашему списку слов "остановить". Удалите те из необработанного массива, а затем снова присоединитесь к пробелам.
Это немного сложнее, но будет гораздо более надежным подходом. Если у вас есть сомнения относительно ценности более ориентированного на NLP подхода, вам может потребоваться некоторое исследование clbuttic errors.
Если вы хотите, чтобы слово начиналось с "stop", вы можете использовать следующий шаблон. "^ Остановка. *"
Это будет соответствовать словам, начинающимся с остановки, за которой следует что-либо.
Как сказал @SharadHolani. Это не будет соответствовать каждому слову, начинающемуся с " остановить"
. Только если он в начале строки, как ", перестает идти". @Waxo дал правильный ответ:
Этот символ слегка лучше, если вы хотите совместить любое слово, начинающееся с " остановить" и содержащее только буквы от от A до Z.
\bstop[a-zA-Z]*\b
Это будет соответствовать всем
остановить (1)
остановить случайный (2)
остановка (3)
хотите остановить (4)
пожалуйста остановить (5)
Но
/^stop[a-zA-Z]*/
будет соответствовать только (1) до (3), но не (4) и (5)