0

我需要一些帮助来编写一些复杂的正则表达式,这些都超出了我的想象。

第一个正则表达式,我想排除所有内容,除了

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

对于第二个,我想要和上面一样,但也允许:

  • 数字 0 到 9
  • 撇号 (')
  • 问号 (?)
  • 感叹号 (!)
  • 冒号和分号 (: & ;)
  • 句点/句号和逗号 (. & ,)

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

非常感谢。

4

1 回答 1

0

为了满足“单一”的要求,您需要按照以下方式进行前瞻:

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

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

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

于 2013-11-14T10:33:19.407 回答