2015-10-12 129 views
3

我正在尋找匹配的空白空間,除了空格[即字母,標點符號]在Python的一行開頭。例如:正則表達式匹配,除Python中的空格外

` a` = True 
` .` = True 
` a` = False [double whitespace] 
`ab` = False  [no whitespace] 

規則re.match(" \w")作品除標點符號 - 如何包括?

+1

嘗試:'\ s [^ \ s]'。 – javanut13

+0

@ JavaNut13 - 謝謝! - 對不起,應該已經能夠自己弄清楚了! – kyrenia

+0

「與其他語言的正則表達式不同,我無法在Python中找到除了空格以外的任何選項」 - 哦,真的嗎?好吧,你需要相同的語法。 https://docs.python.org/2/library/re.html'\ S'就在'\ s'下面 –

回答

7

記住以下幾點:

\s\S 
  • \s是空白
  • \S的一切,但空格
1
import re 

r = re.compile(r"(?<=^\s)[^\s]+.*") 

print r.findall(" a") 
print r.findall(" .") 
print r.findall(" a") 
print r.findall("ab") 

輸出:

['a'] 
['.'] 
[] 
[] 

正則表達式的解釋:

  • (? < =^\ S) - 正回顧後,在字符串的開頭相匹配的空白
  • [^ \ S] + - 任何非空白字符重複一次或更多次
  • * - 任何字符重複零次或多次