如何在Python3.7中使用Regex查找Unicode模式?

时间:2019-01-12 05:59:47

标签: regex python-3.x 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)

1 个答案:

答案 0 :(得分:1)

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

尝试此正则表达式:

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

Click for Demo

说明:

  • \[+-匹配1次以上的[
  • \w+-匹配1次以上的word character
  • [^\\]*-匹配0+次出现的不是\的任何字符
  • \\-匹配\
  • \w+-匹配1个以上出现的单词字符
  • ]]-匹配]]
  • \w+-匹配1个以上出现的单词字符

Python code

这些单词来自Gurmukhi语言。 Unicode范围是0A00 - 0A7F。因此,您也可以使用正则表达式:

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

Click for Demo