Подтвердить что ты не робот

Регулярное выражение для соответствия строке, начинающейся с "stop"

Как создать регулярное выражение для соответствия слова в начале строки. Мы ищем совпадение stop в начале строки, и все может следовать за ней.

Например, выражение должно соответствовать:

stop
stop random
stopping

Спасибо.

4b9b3361

Ответ 1

Если вы хотите совместить только строки, начинающиеся с остановки, используйте

^stop

Если вы хотите сопоставить строки, начинающиеся со слова stop, а затем пробел

^stop\s

Или, если вы хотите сопоставить строки, начинающиеся со слова stop, а затем пробел или любой другой символ без слова, который вы можете использовать (разрешающий вам регулярный цвет)

^stop\W

С другой стороны, то, что следует, соответствует слову в начале строки для большинства ароматизаторов регулярных выражений (в этих вариантах \w соответствует противоположность \W)

^\w

Если ваш вкус не имеет ярлыка \w, вы можете использовать

^[a-zA-Z0-9]+

Будьте осторожны, что эта вторая идиома будет соответствовать только буквам и цифрам, без символа.

Проверьте руководство по аромату регулярного выражения, чтобы узнать, какие ярлыки разрешены, и что именно они соответствуют (и как они относятся к Unicode.)

Ответ 2

Попробуйте следующее:

/^stop.*$/

Пояснение:

  • / charachters ограничивают регулярное выражение (т.е. они не являются частью Regex per se)
  • ^ означает совпадение в начале строки
  • ., а затем * означает соответствие любому символу (.), любое количество раз (*)
  • $ означает конец строки

Если вы хотите, чтобы эта остановка сопровождалась пробелом, вы можете изменить RegEx так:

/^stop\s+.*$/
  • \s означает любой символ пробела
  • + после \s означает, что после слова остановки должен быть по крайней мере один пробельный символ,

Примечание. Также имейте в виду, что в RegEx выше требуется, чтобы за стоповым словом пробега пробел! Поэтому он не будет соответствовать строке, содержащей только: stop

Ответ 3

Если вы хотите сопоставить что-либо после остановки слова не только в начале строки, вы можете использовать: \bstop.*\b - слово, за которым следует строка

Слово до конца строки

Или, если вы хотите совместить слово в строке, используйте \bstop[a-zA-Z]* - только слова, начинающиеся с остановки

Только слова, начинающиеся с остановки

Или начало строк с остановкой ^stop[a-zA-Z]* только для слова - только первое слово
Вся строка ^stop.* - первая строка строки

И если вы хотите сопоставить каждую строку, начинающуюся с stop, включая новые строки, используйте: /^stop.*/s - многострочная строка, начинающаяся с остановки

Ответ 4

/stop([a-zA-Z])+/

Будет соответствовать любое слово остановки (остановка, остановка, остановка и т.д.)

Однако, если вы просто хотите совместить "stop" в начале строки

/^stop/

будет делать: D

Ответ 5

Если вы хотите сопоставить все, что начинается с "stop", включая "stop going", "stop" и "stopping" использовать:

^stop

Если вы хотите совместить слово stop с надписью "останавливаться", "остановить это", но не "останавливаться", а не "останавливать", используйте:

^stop\W

Ответ 6

Я бы посоветовал использовать простой подход с регулярным выражением к этой проблеме. Слишком много слов, которые являются подстроками других несвязанных слов, и вы, вероятно, будете сумасшедшими, пытаясь переопределить более простые уже предоставленные решения.

Вы хотите, по крайней мере, наивный алгоритм сушки (попробуйте ствол Портера, там доступен бесплатный код на большинстве языков) для обработки текста в первую очередь. Сохраните этот обработанный текст и предварительно обработанный текст в двух отдельных массивах с пространственным разделением. Убедитесь, что каждый не-алфавитный символ также получает свой собственный индекс в этом массиве. Какой бы ни был список слов, которые вы фильтруете, также создайте их.

Следующим шагом будет поиск индексов массива, которые соответствуют вашему списку слов "остановить". Удалите те из необработанного массива, а затем снова присоединитесь к пробелам.

Это немного сложнее, но будет гораздо более надежным подходом. Если у вас есть сомнения относительно ценности более ориентированного на NLP подхода, вам может потребоваться некоторое исследование clbuttic errors.

Ответ 7

Если вы хотите, чтобы слово начиналось с "stop", вы можете использовать следующий шаблон. "^ Остановка. *"

Это будет соответствовать словам, начинающимся с остановки, за которой следует что-либо.

Ответ 8

Как сказал @SharadHolani. Это не будет соответствовать каждому слову, начинающемуся с " остановить"

. Только если он в начале строки, как ", перестает идти". @Waxo дал правильный ответ:

Этот символ слегка лучше, если вы хотите совместить любое слово, начинающееся с " остановить" и содержащее только буквы от от A до Z.

\bstop[a-zA-Z]*\b

Это будет соответствовать всем

остановить (1)

остановить случайный (2)

остановка (3)

хотите остановить (4)

пожалуйста остановить (5)

Но

/^stop[a-zA-Z]*/

будет соответствовать только (1) до (3), но не (4) и (5)