我正在寻找一个正则表达式,它可以产生不是单词字符也不是软连字符 (U+00AD) 的字符。
这会给我不是单词字符的字符:
((?=\W).)
但是软连字符呢?什么是正确的正则表达式?
我正在寻找一个正则表达式,它可以产生不是单词字符也不是软连字符 (U+00AD) 的字符。
这会给我不是单词字符的字符:
((?=\W).)
但是软连字符呢?什么是正确的正则表达式?
你可以这样做:
[^\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
来匹配 unicode 软连字符,因此您应该能够否定该表达式并将其与\W
非单词字符和软连字符相匹配的字符。
[^\u00AD\w]+
使用正则表达式/\x{AD}/u
匹配 PHP 中的软连字符!