我有一个正则表达式:
/[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)
)