Ищете регулярное выражение: мягкий дефис или не символ слова - PullRequest
1 голос
/ 24 августа 2011

Я ищу регулярное выражение, приводящее к символам, которые не являются символами слова или мягким дефисом (U + 00AD).

Это даст мне символы, которые не являются символами слова:

((?=\W).)

А как насчет символа мягкого дефиса? Что такое правильное регулярное выражение?

Ответы [ 3 ]

4 голосов
/ 24 августа 2011

Вы можете сделать это:

[^\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$') // '$'
1 голос
/ 01 марта 2012

Используйте регулярные выражения /\x{AD}/u для сопоставления мягких дефисов в PHP!

1 голос
/ 24 августа 2011

Вы можете использовать \u00AD для сопоставления с символом мягкого переноса Юникода, поэтому вы должны иметь возможность отрицать это выражение и комбинировать его с \W для сопоставления символов, которые не являются символом слова и не являются мягким дефисом.

[^\u00AD\w]+
...