2013-11-14 124 views
0

我需要一些幫助來編寫一些複雜的正則表達式,這些正則表達式超出了我的頭。字母/數字字符,空格和破折號的正則表達式

第一個正則表達式,我要排除一切除了

  • 字母A到Z的大寫和小寫
  • 單個空格
  • 單破折號( - )

對於第二個,我想要與上面相同,但也允許:

  • 數字0到9個
  • 引號(')
  • 問號
  • 感嘆號
  • 冒號&分號(:&;)(?)(!)
  • 週期/ Fullstops &逗號(。 &,)

作爲一個便箋,有沒有任何在線生成器,我可以鍵入一個允許的字符列表,將生成一個爲我?

非常感謝。

回答

0

爲了滿足「單一」的要求,你需要一個lookeahead,沿着線:

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

\x20(?!\x20)寫着「一個空間,如果不跟另一個空間」。

對於第二個問題,只需向第一個組添加額外的字符:[a-z0-9&+ etc]

相關問題