如何在 Python3.7 中使用正则表达式查找 Unicode 模式



我正在尝试查找Unicode模式,但它总是返回一个空列表[ ]。我在 Kwrite 中尝试了相同的模式,效果很好。

我已经尝试过 \u \\u 代替 \w,但对我不起作用。这里的 Unicode 字符串可以是任何 Unicode 字符串。

InputString=r"[[ਅਤੇCC_CCD]]_CCP"
Result = re.findall(r'[[]+[w]+\w+[]]+[_]w+',InputString,flags=re.U)
print(Result)

之间似乎有一个额外的字符,这是 w+ 无法匹配的。它的十六进制值是0xA47所以,我在正则表达式中添加了[u0A47]

试试这个正则表达式:

[+w+[u0A47]\w+]]w+

点击查看演示

解释:

  • [+ - 匹配 1+ 次[
  • w+ - 匹配单词字符的 1+ 次出现次数
  • [^\]* - 匹配任何未字符的 0+ 出现
  • 次数
  • \ - 比赛
  • w+ - 匹配单词字符的 1+ 次出现次数
  • ]] - 比赛 ]]
  • w+ - 匹配单词字符的 1+ 次出现次数

蟒蛇代码

这些词来自古尔穆奇语。Unicode 范围为 0A00 - 0A7F 。所以你也可以使用正则表达式:

[+[u0A00-u0A7F]+\w+]]w+

点击查看演示

最新更新