Предположим, у вас есть следующий текст:
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam Lorem! nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At Lorem, vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
И вы хотите сопоставить любое ключевое слово "lorem" с ограничением, что оно не должно быть подстрокой слова. Поэтому я проверяю, заканчивается ли он/начинается с пробела или это конец/начало строки, с помощью:
/(^|\s)(lorem)(?=\s|$)/gmi
Это прекрасно работает. Однако я хочу расширить эту функциональность, чтобы найти также совпадения, которые заканчиваются любым специальным символом, таким как ,
или %
(не ограничиваясь ими), а не только пробелами. Проблема, с которой я столкнулся, заключается в том, что, похоже, не существует класса символов для соответствия каким-либо специальным символам, и я не могу использовать \w
или \W
, так как они также будут соответствовать диакритическим знакам как символам, отличным от слова ( даже если это словесные символы).
Вот я и спрашиваю себя, как этого добиться!? Есть ли способ указать диапазон для любого несловесного символа, который не будет включать диакритические знаки?
Обратите внимание, что я не могу использовать плагин-расширитель RegExp, чтобы разрешить поиск с поддержкой Unicode.
Пример моей ситуации: Демо.
\blorem\b
вашим потребностям? - person Steven Doggart   schedule 26.05.2016-
или・
или.
или_
словесным или несловесным символом? - person Laurel   schedule 26.05.2016