Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查找正则表达式:是否使用软连字符_Javascript_Regex_Soft Hyphen - Fatal编程技术网

Javascript 查找正则表达式:是否使用软连字符

Javascript 查找正则表达式:是否使用软连字符,javascript,regex,soft-hyphen,Javascript,Regex,Soft Hyphen,我正在寻找一个正则表达式屈服于字符,而不是字字符或软连字符(U+00AD) 这将为我提供非文字字符的字符: ((?=\W).) 但是软连字符呢什么是正确的正则表达式?您可以执行以下操作: [^\w\u00AD] (不是一个单词或软连字符) 我创建了一个快速且脏的last\u symbol()函数: function last_symbol(str) { var result = str.match(/([^\w\u00AD])[\w\u00AD]*$/); return

我正在寻找一个正则表达式屈服于字符,而不是字字符或软连字符(U+00AD)

这将为我提供非文字字符的字符:

((?=\W).)
但是软连字符呢什么是正确的正则表达式?

您可以执行以下操作:

[^\w\u00AD]
(不是一个单词或软连字符)

我创建了一个快速且脏的
last\u 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$') // '$'
您可以这样做:

[^\w\u00AD]
(不是一个单词或软连字符)

我创建了一个快速且脏的
last\u 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软hypen字符,因此您应该能够对该表达式求反,并将其与
\W
组合以匹配非单词字符和非软连字符的字符

[^\u00AD\w]+

您可以使用
\u00AD
匹配unicode软hypen字符,因此您应该能够对该表达式求反,并将其与
\W
组合以匹配非单词字符和非软连字符的字符

[^\u00AD\w]+


使用regex
/\x{AD}/u
匹配PHP中的软连字符

使用regex
/\x{AD}/u
匹配PHP中的软连字符

不,这不起作用,我不是在寻找连字符,而是“软连字符”-老实说,这是一个不同的字符(U+00AD请参见)-我不必这样做-你将不得不使用十六进制转义符来表示U+00AD。请注意,Javascript在单词字符或任何非stoneage ASCII(包括U+00AD)的方面是不正确的。如果有人写了
“élève”
,那么不管他们有没有软连字符,你都会有大麻烦。基本上,你是被严重搞砸了。尝试在Javascript中为
“é-lève”
“ja la pe-ño”
编写一个模式,其中真正的连字符实际上是软连字符。NFW.@tchrist:幸运的是,我只在软连字符本身中受影响,而不是在那个oneno周围的任何特殊字符中,这不起作用,我不是在寻找连字符,而是“软连字符”-老实说,这是一个不同的字符(U+00AD,请参见)-我不必担心,你将不得不为U+00AD使用十六进制转义。请注意,Javascript在单词字符或任何非stoneage ASCII(包括U+00AD)的方面是不正确的。如果有人写了
“élève”
,那么不管他们有没有软连字符,你都会有大麻烦。基本上,你是被严重搞砸了。尝试在Javascript中为
“é-lève”
“ja la pe-ño”
编写一个模式,其中真正的连字符实际上是软连字符。NFW@tchrist:幸运的是,我只是被赋予了软连字符本身,而不是这个字符周围的任何特殊字符regex@Thariama你到底想匹配什么?嗯,我在找完整的regex@Thariama你到底想匹配什么?如果我想最后出现这个,我需要设置什么?@Thariama匹配这个的最后一个字符或最后一组字符?最后一个字符,但是[\w\u00AD]+$应该是最后一个字符如果我想要最后一次出现,我需要设置什么?@Thariama最后一个字符或与此匹配的最后一组字符?最后一个字符,但是[\w\u00AD]+$应该是最后一个字符