正则表达式匹配包含某些unicode字符的整个unicode单词

时间:2017-04-17 21:07:19

标签: javascript regex

例如,匹配包含符号ь

的所有西里尔字

2 个答案:

答案 0 :(得分:0)

一种可能的方法是将句子分开以分别获取每个单词,然后使用Array#filter过滤掉包含指定字符的每个单词,在本例中为ь



var str = 'something else herь',
    res = str.split(' ').filter(v => v.indexOf('ь') > -1);
    
    console.log(res);




答案 1 :(得分:0)

如果您只需要西里尔字母,则必须使用
完成 空白边界 单词边界将是一个非常正则表达式 请记住,西里尔语可以穿插拉丁语,所以我觉得它没有实际意义。

这将为您提供西里尔字母 U+00044C ь CYRILLIC SMALL LETTER SOFT SIGN

/(?:\s|^)[\u0400-\u0484\u0487-\u052F\u1C80-\u1C88\u1D2B\u1D78\u2DE0-\u2DFF\uA640-\uA69F\uFE2E-\uFE2F]*\u044c[\u0400-\u0484\u0487-\u052F\u1C80-\u1C88\u1D2B\u1D78\u2DE0-\u2DFF\uA640-\uA69F\uFE2E-\uFE2F]*(?!S)/

扩展

 (?: \s | ^ )
 [\u0400-\u0484\u0487-\u052F\u1C80-\u1C88\u1D2B\u1D78\u2DE0-\u2DFF\uA640-\uA69F\uFE2E-\uFE2F]* 
 \u044c 
 [\u0400-\u0484\u0487-\u052F\u1C80-\u1C88\u1D2B\u1D78\u2DE0-\u2DFF\uA640-\uA69F\uFE2E-\uFE2F]* 
 (?! S )