我需要所有字母的正则表达式。我有一个输入和目标文本。它们都可以属于不同的字母表。我的意思是他们可以属于中文,拉丁文,西里尔文和其他任何字母。
我需要一个用于多语言输入和多语言目标文本的正则表达式。
有没有人对此有任何想法?我怎么写这个正则表达式?
我会用javascript来使用它。但我认为java和javascript应该有共同的正则表达式来解决这个问题。
答案 0 :(得分:4)
如果您使用的是Java(不是javascript!),则可以使用unicode属性,例如
\P{L}
来自任何语言的任何信件。
有关更多信息,请参阅regular-expressions.info/unicode。
适用于Javascript:
来自XRegExp的lib和一些插件XRegExp Unicode plugins扩展了javasript正则表达式功能。这增加了对Unicode类别,脚本和块的支持。
使用这些库,您可以将\p{L}
与javascript一起使用。
请参阅我对this question的回答以获取一个小例子
答案 1 :(得分:2)
某些正则表达式引擎支持所有Unicode字母的特殊字符:
\p{L}
或者您可以使用\w
- 字母,数字,下划线
答案 2 :(得分:0)
我用“|”这个角色作为分隔符,所以它对我来说是特殊的。键可以是除“|”之外的任何字符。它解决了我的问题,谢谢你的答案。它可以与javascript,java和groovy一起使用。我测试了它,工作了。
var keyPrefix ="\\|[\u0000-\u007B\u007D-\uFFEF]*";
var keySuffix = "[\u0000-\u007B\u007D-\uFFEF]*\\|";
var searchkey = keyPrefix + key.toLowerCase() + keySuffix;