【问题标题】:Regex match for a non-english language in PythonPython中非英语语言的正则表达式匹配
【发布时间】:2011-01-25 13:57:53
【问题描述】:

我正在尝试在 python 脚本中捕获和匹配俄语字符。由于俄罗斯字符不属于 [a-Z] 类型,我应该使用什么正则表达式来匹配它们。我不能使用 (.*) 因为它会匹配所有内容。

linkpat = re.compile('name=[a-Z]+;size=[0-9]+')

【问题讨论】:

  • 顺便说一下,[a-Z] 不是有效范围。
  • @Tim 是的。我没有逐字复制代码。实际的正则表达式要复杂一些。

标签: python regex unicode python-2.x


【解决方案1】:

使用 unicode 标志:

re.compile('name=\w+;size=\d+', re.U)

这也可以匹配任何语言的任何字母(加上下划线),而不仅仅是俄语。

【讨论】:

  • 是的,这对我有用。而且您的解决方案更好,因为在某个阶段我也可能会遇到某种未知语言。
【解决方案2】:

您可以尝试使用正确的\w LOCALE

【讨论】:

    【解决方案3】:

    使用依赖于语言环境的字符类

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-08
      • 2012-04-15
      • 1970-01-01
      • 2017-10-27
      • 2017-02-11
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      相关资源
      最近更新 更多