我正在寻找一个正则表达式字符,这些字符不是单词字符,也不是软连字符(U + 00AD)。
这将为我提供不是单词字符的字符:
((?=\W).)
但是软连字符呢? 正确的正则表达式是什么?
答案 0 :(得分: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$') // '$'
答案 1 :(得分:1)
您可以使用\u00AD
来匹配unicode soft hypen字符,因此您应该能够否定此表达式并将其与\W
组合以匹配不是单词字符而非软字符的字符连字符。
[^\u00AD\w]+
答案 2 :(得分:1)
使用正则表达式/\x{AD}/u
匹配PHP中的软连字符!