RegEx为乌克兰字母.如何用大写字母分隔西里尔字?

Vla*_*iev 4 javascript regex string

我有一个字符串里面有一些西里尔字.每个都以大写字母开头.

var str = '??????????';
Run Code Online (Sandbox Code Playgroud)

我找到了这个解决方案str.match(/[?-?][?-?]+/g).

但它让我感到很["??"]遗憾["????", "??", "????"].似乎它不承认乌克兰字母('і','є'),只有俄语.

那么,我如何更改该正则表达式以包含乌克兰字母?

Pur*_*lex 9

乌克兰字母有四个与西里尔字母不同的单词,例如:[\xd1\x96, \xd1\x94, \xd1\x97, \xd2\x91],并且内部可以包含单引号

\n\n
"\xd2\x91\xd1\x83\xd0\xbb\xd1\x8f, \xd0\xb7\'\xd1\x97\xd1\x81\xd1\x82\xd0\xb8, \xd1\x96\xd1\x81\xd1\x82\xd0\xbe\xd1\x82\xd0\xb0, \xd0\x84\xd0\xb2\xd1\x80\xd0\xbe\xd0\xbf\xd0\xb0".match(/[\xd0\xb0-\xd1\x8f\xd1\x96\xd1\x94\xd1\x97\xd2\x91\\\']+/ig)\n
Run Code Online (Sandbox Code Playgroud)\n\n

i通过 和 将匹配大写,如“\xd0\x84\xd0\xb2\xd1\x80\xd0\xbe\xd0\xbf\xd0\xb0”

\n


Med*_* V. 8

使用\p{Lu}大写的比赛,\p{Ll}为小写,或者\p{L}匹配任何字母

更新: 这仅适用于Java,不适用于JavaScript.不要忘记在你的正则表达中包含"apostrof","ji"


dau*_*nus 5

[?-?] 不是西里尔字母,只是俄语!

西里尔文是一个书写系统。它在多种语言的字母中使用。(如拉丁语:西欧语言的字符集,东欧等)

拥有俄语和乌克兰语都可以[?-?????]

要添加Belarisian: [?-??????]

对于所有西里尔字符(包括巴尔干语和旧西里尔字符),您可以通过Unicode子集类来获取它,例如: \p{IsCyrillic}


单独与乌克兰人打交道:

[?-????????][?-?????????-????????]在每种情况下似乎都是由33个字母组成的完整乌克兰字母。

撇号不是字母,而是偶尔包含在字母表中,因为它会影响下一个元音。撇号是单词的一部分,而不是分隔符。它可能以几种方式显示:

27“'”撇号
60“`”重音符
2019“'”正确的单引号
2bc“?” 修饰语字母

也许还有更多。

是的,撇号有点复杂。没有通用的标准。

  • 不,这里的 ЩЬЮЯ 将 ЫЪЭ(不是乌克兰语)从 А-Я 范围中排除。 (2认同)