«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как правильно использовать границы слов в регулярных выражениях PHP?

Как правильно использовать границы слов в регулярных выражениях PHP?

Опубликовано 23 декабря 2024 г.
Просматривать:469

How to Correctly Use Word Boundaries in PHP Regular Expressions?

Понимание функциональности границ слов в регулярных выражениях PHP

При попытке реализовать границы слов для сопоставления определенных слов в контенте с помощью регулярных выражений в PHP, важно понять их точное поведение. Однако во время тестирования могут возникнуть неожиданные результаты.

В приведенном примере выражение «^|\b@nimal/i» использовалось для соответствия слову «кот», только если оно встречается в начале другое слово. Однако результаты оказались противоречивыми, что привело к путанице в том, как PHP определяет границы слов.

Ключ к пониманию соответствия границ слов лежит в природе \b. Этот индикатор соответствует точке перехода между \w (символом слова) и \W (символом, не являющимся словом). Чтобы сопоставление было успешным, перед интересующим символом должен существовать словесный символ.

Рассмотрим первый пример:

preg_match("/(^|\b)@nimal/i", "something@nimal", $match);

Выражение соответствует границе слова между «g» и «@», поскольку «g» — это словесный символ, а «@» — это символ слова. символ, не являющийся словом.

Во втором примере:

preg_match("/(^|\b)@nimal/i", "something!@nimal", $match);

Соответствие не найдено, так как перед знаком "@" нет символа слова. Оба "!" и «@» не являются символами слова.

Чтобы устранить проблему, начните со слова перед символом, который вам нужен. Это гарантирует наличие допустимой границы слова.

Заявление о выпуске Эта статья перепечатана по адресу: 1729466537. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3