Ищете регулярное выражение: мягкий дефис или не символ слова
Я ищу регулярное выражение для символов, которые не являются ни символами слов, ни мягким дефисом (U+00AD).
Это даст мне символы, которые не являются словами-символами:
((?=\W).)
Но как насчет мягкого дефиса? Что такое правильное регулярное выражение?
3 ответа
Решение
Вы можете сделать это:
[^\w\u00AD]
(НЕ слово или мягкий дефис)
Я создал быстрый и грязный last_symbol()
функция:
function last_symbol(str) {
var result = str.match(/([^\w\u00AD])[\w\u00AD]*$/);
return (result == null) ? null : result[1]; }
last_symbol('hello') // null
last_symbol('hell!') // '!'
last_symbol('hell!o$') // '$'
Ты можешь использовать \u00AD
чтобы соответствовать символу мягкого переноса Юникода, поэтому вы должны иметь возможность отрицать это выражение и комбинировать его с \W
сопоставлять символы, которые не являются символом слова и не являются мягким дефисом.
[^\u00AD\w]+
Используйте регулярное выражение /\x{AD}/u
соответствовать мягким дефисам в PHP!