多国语言如何用正则表达式匹配?

にほんご Português 中文繁体1.0

阅读 7.9k
3 个回答
  • 首先查询你想要匹配语言的Unicode值域

  • 比如,你想要匹配的是简体中文,它的值域为4E00到9F45间

demo = /[\u4E00-\u9F45]/g
demo.test("测试") // print true
demo.test("test") // print false

举个中文的例子:
匹配中文的正则一般为:/[\u4e00-\u9fa5]+/,其中4e00到9fa5就是中文的范围(其实中文的范围不止这么大,还有CJK范围的)。

eg:

/[\u4e00-\u9fa5]+/.test('中') === true

所以你只要找到你需要的语言的unicode范围,写个向上面的正则表达式就OK了。

东亚文字的unicode范围有大量重叠, 所以你没法在unicode这一层(简单又精确地)匹配自然语言, 得上language model之类东西.

推荐问题