Regex условный взгляд за совпадением символов

Поэтому я хочу найти строку "to" в строке, но только когда она автономна. Это может быть в начале строки, как в "сделать это", поэтому я не могу искать "до".

То, что я хочу сделать, это сказать, что если есть символ "to", он не может быть \w. Как я могу это сделать?

2 ответа

Решение

Попробуйте слово boudaries. Соответствует началу и концу искомого шаблона.

\bto\b

Это именно то, что вы хотите сказать, т.е.

Так что же именно соответствует \ b? Механизмы регулярных выражений не понимают английский или какой-либо другой язык в этом отношении, и поэтому они не знают, что такое границы слов. \b просто соответствует расположению между символами, которые обычно являются частями слов (буквенно-цифровые символы и подчеркивание, текст, который будет соответствовать \ w), и любым другим (текст, который будет соответствовать \W).

Самс научи себя регулярным выражениям за 10 минут Бен Форта

Попробуйте использовать \bto\b, который будет соответствовать to как отдельное слово

Вот хорошее объяснение:

Есть три разных положения, которые квалифицируются как границы слов:

  • Перед первым символом в строке, если первый символ является символом слова.

  • После последнего символа в строке, если последний символ является символом слова.

  • Между двумя символами в строке, где один является символом слова, а другой не является символом слова.

Проще говоря: \b позволяет выполнять поиск "только целых слов" с помощью регулярного выражения в форме \bword\b, "Символ слова" - это символ, который можно использовать для формирования слов. Все символы, которые не являются "символами слова", являются "несловесными символами".

Другие вопросы по тегам