在长正则表达式中包含unicode字符



我有一个正则表达式:

/[a-zA-Zɑôáīúȑìêɑ͡iɑ͡uŋġḧn̐ƞġg̶̃čḣñt́d́ŕŕńȶv̈m̈ᵯǰɏæǽÿẇẏs̃śś̶]+/gm

工作得很好,除了有一个字符我不能包括(或者当包括时似乎不像预期的那样工作)。该字符位于正则表达式的最后一个数字之内:

ś̶//[它使交叉(在某些字体中不容易看到),在unicode中是'COMBINING LONG STROKE OVERLAY' (U+0336)]

我的regex正在捕获字符,但拆分包含该字符的任何单词:

"mokk̇ś̶ḣô".match(/[a-zA-Zɑôáīúȑìêɑ͡iɑ͡uŋġḧn̐ƞġčḣñt́d́ŕŕńȶv̈m̈ᵯǰɏæǽÿẇẏs̃śś̶g̶̃]+/gm)
// == ['mokk', 'ś̶ḣô']

我听说过Unicode属性转义使用p{UnicodePropertyValue}u标志。在这里有用吗?

这似乎与汉字无关。就像你自己说的,它被捕获了。分割的原因是缺少另一个字符:k³.

console.log("mokk̇ś̶ḣô".match(/[a-zA-Zɑôáīúȑìêɑ͡iɑ͡uŋġḧn̐ƞġčḣñt́d́ŕŕńȶv̈m̈ᵯǰɏæǽÿẇẏs̃śś̶g̶̃]+/gm)
)
console.log("mokk̇ś̶ḣô".match(/[a-zA-Zɑôáīúȑìêɑ͡iɑ͡uŋġḧn̐ƞġčḣñt́d́ŕŕńȶv̈m̈ᵯǰɏæǽÿẇẏs̃śś̶k̇g̶̃]+/gm)
)

相关内容

  • 没有找到相关文章

最新更新