Новый вопрос, Как предложил Asaph в предыдущем вопросе: Regex, чтобы проверить, существует ли точная строка
Я ищу способ проверить, существует ли точное строковое совпадение в другом строковом использовании Regex или какой-либо лучший предложенный метод. Я понимаю, что Вы говорите regex соответствовать пространству или любому другому несловесному символу вначале или концу строки. Однако я не знаю точно, как настроить его.
Строка поиска: #t
Должен соответствовать:
Строка 1: Hello World, Nice to see you! #t
Строка 2: #T Hello World, Nice to see you!
Строка 3: Hello World, #t Nice to see you!
Не должен Соответствовать:
Строка 1: Hello World, Nice to see you!
Строка 2: Hello World, Nice to see you! #ta
Строка 3: #tHello World, Nice to see you!
Редактирование 2: Добавленный больше строковых образцов
Отредактируйте 1 для Serg555 и SilentGhost:
Символы позволили в строке поиска:#[_a-zA-Z0-9]
#
является дополнительным.
Требования: Строка поиска может быть в любой позиции символа в Предмете. Там может или может не быть пробельный символ прежде или после него. Я не хочу, чтобы это соответствовало, если это - часть другой строки; такой как часть слова.
Ради этого вопроса: Я думаю, что сделал бы это использование этого шаблона: /\b\#t\b/gi
Однако это не возвращает результаты, как я ожидал бы.
Я могу найти точные совпадения для нормальных строк (строки, где # не присутствует), использование:
/\b{$search_string}\b/gi
Дополнительная информация: это будет использоваться в PHP 5
Все, что вам нужно, это:
/(?:^|\s)#t\b/i #t is in the beginning or preceded by space.
\ b
соответствует границе слова, которая является границей между символами слова и символами, не являющимися словами. #
не является словесным символом, поэтому ваше регулярное выражение соответствует только таким строкам: abc # t
или ab_ # t
.
Кроме того, обычно #
не является специальным символом в регулярном выражении, вам не нужно его экранировать.
ETA : Ваши требования довольно неоднозначны: До или после него может быть или не быть пробела. Я не хочу, чтобы он совпадал, если он является частью другой строки; например, часть слова.
Я думаю, вам нужно дать исчерпывающий образец возможных входных строк. Потому что, поскольку это мое регулярное выражение, работает нормально.