1

我正在寻找一个正则表达式,它可以产生不是单词字符也不是软连字符 (U+00AD) 的字符。

这会给我不是单词字符的字符:

((?=\W).)

但是软连字符呢?什么是正确的正则表达式?

4

3 回答 3

4

你可以这样做:

[^\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$') // '$'
于 2011-08-24T14:20:57.443 回答
2

您可以使用\u00AD来匹配 unicode 软连字符,因此您应该能够否定该表达式并将其与\W非单词字符和软连字符相匹配的字符。

[^\u00AD\w]+
于 2011-08-24T14:21:50.600 回答
1

使用正则表达式/\x{AD}/u匹配 PHP 中的软连字符!

于 2012-03-01T12:29:30.687 回答