【问题标题】:Regex words with hyphen带连字符的正则表达式单词
【发布时间】:2013-11-18 02:19:11
【问题描述】:

我正在寻找一个正则表达式来匹配至少有一个数字、一个字母 (a-zA-Z) 和至少一个连字符的单词(其中没有空格)。总大小应在 4 到 40 之间。

例子:

你好 h9-11c 匹配 h9-11c

foo 79d-11c-afac bar 匹配 79d-11c-afac

foo d-c-afac bar 不匹配 - 没有数字

到目前为止,我已经想出了这个:

\b(?=.*\d)(?=.*[a-zA-Z])(?=.*-).{4,40}\b

但是不匹配一个字(有点贪心)

【问题讨论】:

    标签: python regex


    【解决方案1】:

    使用\S 匹配非空白字符。

    另外,\b 匹配字母数字字符的边界,但您已将您的单词定义为任何非空格。

    (?<!\S)(?=\S*\d)(?=\S*[a-zA-Z])(?=\S*-)\S{4,40}(?!\S)
    

    【讨论】:

    • 感谢您的快速响应...我会在几分钟后选择它作为答案
    • 很好地使用了非空白\S 锚点,为此 +1。
    猜你喜欢
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 2013-08-23
    相关资源
    最近更新 更多