Как создать регулярное выражение, соответствующее слову в начале строки. Мы ищем соответствие stop
в начале строки, и все может следовать за ним.
Например, выражение должно соответствовать:
stop
stop random
stopping
Спасибо.
Если вы хотите сопоставить только строки, начинающиеся с остановки, используйте
^stop
Если вы хотите сопоставить строки, начинающиеся со слова stop, за которым следует пробел
^stop\s
Или, если вы хотите сопоставить строки, начинающиеся со слова stop, но за которым следует либо пробел, либо любой другой символ, не являющийся словом, который вы можете использовать (ваш вариант регулярного выражения позволяет)
^stop\W
С другой стороны, то, что следует далее, соответствует слову в начале строки в большинстве разновидностей регулярных выражений (в этих разновидностях \ w соответствует противоположности \ W)
^\w
Если в вашем вкусе нет ярлыка \ w, вы можете использовать
^[a-zA-Z0-9]+
Будьте осторожны, эта вторая идиома будет соответствовать только буквам и цифрам, без каких-либо символов.
Ознакомьтесь с руководством по использованию регулярных выражений, чтобы узнать, какие сочетания клавиш разрешены и что именно они соответствуют (и как они работают с Unicode).
^stop\b
, что допускаются любые границы, включая конец строкиПопробуй это:
Пояснение:
Если вы хотите, чтобы эта остановка сопровождалась пробелом, вы можете изменить RegEx следующим образом:
Примечание. Также имейте в виду, что приведенное выше регулярное выражение требует, чтобы после стоп-слова был пробел! Таким образом, он не будет соответствовать строке, содержащей только: stop
источник
Если вы хотите сопоставить что-либо после остановки слова, а не только в начале строки, вы можете использовать:
\bstop.*\b
- слово, за которым следует строкаИли, если вы хотите сопоставить слово в строке, используйте
\bstop[a-zA-Z]*
- только слова, начинающиеся с остановкиИли начало строки с остановкой только
^stop[a-zA-Z]*
для слова - только первое словоВся строка
^stop.*
- только первая строка строкиИ если вы хотите сопоставить каждую строку, начинающуюся с остановки, включая символы новой строки, используйте:
/^stop.*/s
- многострочную строку, начинающуюся с остановкиисточник
Как сказал @SharadHolani. Это не соответствует каждому слову, начинающемуся с " стоп "
. Только если он стоит в начале строки типа « хватит ». @Waxo дал правильный ответ:
Это один немного лучше, если вы хотите , чтобы соответствовать любому слову , начинающемуся с « стоп » и не содержащим ничего , кроме письма от А до Z .
Это будет соответствовать всем
Но
будет соответствовать только (1) до (3), но не (4) и (5)
источник
Соответствует любому стоп-слову (остановка, остановка, остановка и т. Д.)
Однако, если вы просто хотите сопоставить «стоп» в начале строки
сделаю: D
источник
Если вы хотите сопоставить все, что начинается с «стоп», включая «стоп», «стоп» и «стоп», используйте:
Если вы хотите сопоставить слово « стоп», за которым следует что-нибудь, например «прекратить», «остановить это», но не «остановил» и не «остановить», используйте:
источник
Я бы не советовал использовать простые регулярные выражения для решения этой проблемы. Слишком много слов являются подстроками других не связанных между собой слов, и вы, вероятно, сведете себя с ума, пытаясь перенастроить уже предоставленные более простые решения.
Вам понадобится хотя бы наивный алгоритм стемминга (попробуйте стеммер Porter; для большинства языков доступен бесплатный код), чтобы сначала обработать текст. Храните этот обработанный текст и предварительно обработанный текст в двух отдельных массивах, разделенных пробелами. Убедитесь, что каждый небуквенный символ также имеет свой индекс в этом массиве. Какой бы список слов вы ни фильтровали, ограничьте и их.
Следующим шагом будет поиск индексов массива, которые соответствуют вашему списку «стоповых» слов с корнем. Удалите их из необработанного массива, а затем снова присоединитесь к пробелам.
Это немного сложнее, но будет гораздо более надежным подходом. Если у вас есть какие-либо сомнения в ценности подхода, более ориентированного на НЛП, возможно, вы захотите провести небольшое исследование клбуттических ошибок .
источник
Если вы хотите, чтобы слово начиналось с «стоп», вы можете использовать следующий шаблон. "^ стоп. *"
Это будет соответствовать словам, начинающимся с остановки, за которой следует что-либо.
источник
"^stop"
?code
String line = "stopped";
String pattern = "^stop";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line);
System.out.println(m.find( )); //prints true
System.out.println(line.matches(pattern)); //prints false