【问题标题】:Python Regex that matches a certain string with or without inclusion of a character?匹配某个字符串的Python正则表达式是否包含字符?
【发布时间】:2016-01-16 14:47:24
【问题描述】:

我正在尝试匹配恰好包含 1-4 位数字的字符串,在可选分隔符之后的匹配开头包含或不包含“x”。这是分隔符以防万一:(这部分很好)

[ .\-]* 

例如,在

blahblah-123 hahaha
sdsshgs.x7
3343434 093798

这些将被匹配:

123
x7

我已经成功匹配了 1-4 位数字,用这个:

(\b\d{1,4}\b)?

同时,我希望能够匹配以“x”开头的 1-4 位字符串,所以我有这个。

(\bx\d{1,4}\b)?

现在唯一的问题是将它们放在一个正则表达式中。也许一个'|'会有用吗?任何帮助将不胜感激。

【问题讨论】:

  • ? 表示前一个字符的 0 或 1 个 "x?" 表示 0 或 1 个字符。
  • 试试[ -\.](x?\d{1,4})\b
  • @recursive 是的,我有点理解,如果找不到匹配项,代码应该没问题。到目前为止,我认为没有任何问题。编辑:哦,这就是我应该使用它的地方。谢谢!
  • @approxiblue 是的,这可以解决问题。谢谢!
  • @approxiblue 实际上,它并不完全匹配 1-4 位数字。如果它们超过 4,它只会减少它们。我找到了一个解决方案,尽管那里可能有一些更短的东西。 (\bx\d{1,4}\b|\b\d{1,4}\b)?

标签: python regex match


【解决方案1】:

试试[ -\.](x?\d{1,4})\b。 – 近似蓝色

【讨论】:

    猜你喜欢
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    相关资源
    最近更新 更多