正则表达式表示字母/数字字符,空格和短划线

时间:2013-11-14 10:22:42

标签: python regex

我需要一些帮助来编写一些复杂的正则表达式,这些都是我的想法。

第一个正则表达式,我想排除之外的所有内容:

  • 大写和小写字母A到Z
  • 单一空格
  • 单个破折号( - )

对于第二个,我想要与上面相同,但也允许:

  • 数字0到9
  • Apostrophes(')
  • 问号(?)
  • 感叹号(!)
  • Colons&半冒号(:&amp ;;)
  • 期间/ Fullstops&逗号(。&,)

作为附注,是否有任何在线生成器,我可以输入允许的字符列表,为我生成一个?

非常感谢。

1 个答案:

答案 0 :(得分:0)

为了满足“单一”要求,你需要一个lookeahead,类似于:

r1 = r"""(?xi)
    ^
    (
        [a-z]+          
        |               
        \x20(?!\x20)    
        |               
        -(?!-)          
    )
    +
    $
"""

\x20(?!\x20)读取“空格,如果没有后跟另一个空格”。

对于第二个,只需向第一组添加额外的字符:[a-z0-9&+ etc]