2012-07-23 20 views
5

甲線必須通過正則表達式進行驗證,正則表達式匹配所有但不爲空

  1. 線可以包含任何字符,空格,數字,浮動。

  2. 線不應該是空白

我嘗試這樣做:

[A-Za-z0-9~`!#$%^&*()_+-]+ //thinking of all the characters 

任何替代的解決方案,將有助於

+1

出了什麼問題'+'? – 2012-07-23 19:36:23

+3

那麼你是說絕對允許任何事情,只要行不是空的?爲什麼你甚至想用這個正則表達式,而不是我確定你的語言具有的'length'函數? – ruakh 2012-07-23 19:37:51

+1

你需要這個正則表達式嗎?爲什麼不修剪線條並檢查它是否不是空字符串? – 2012-07-23 19:38:38

回答

0

嘗試:

[.]+ 

它應該是任何字符至少一個。

+6

-1,對不起。在大多數正則表達式引擎中,'[。]'只會匹配實際的時間段。你的意思是'.'。 – ruakh 2012-07-23 19:38:52

2

你可以檢查這行是否匹配^$如果它是空白的,你可以使用它作爲失敗,否則它會通過。

6

嘗試:[^()]

在蟒蛇與re.match()

>>> re.match(r"[^()]", '') 
    >>> re.match(r"[^()]", ' ') 
    <_sre.SRE_Match object at 0x100486168> 
10

試試這個匹配包含不止空白

/.*\S.*/ 

這意味着行

/ =分隔符
.* =零個或更多的什麼,但換行
除了一個空白\S =什麼(換行符,製表符,空格)

等你拿
匹配任何東西,但換行+的東西沒有空格+什麼,但換行

如果僅將空白行作爲非空白字符,則將規則替換爲/.+/,該規則將匹配1個或多個任何內容。

+0

這是正確的答案! – calbertts 2014-10-02 21:59:04

-1

這人會匹配一切,但不是空白的字符串:

^(\s|\S)*(\S)+(\s|\S)*$ 

空字符串是包含空字符只(製表符,空格等)的那些。

0

試試這個:

^.+$ 

我在python BeautifulSoup試圖找到那些沒有是空的一個屬性標籤時使用此。它運作良好。示例如下:

# get first 'a' tag in the html content where 'href' attribute is not empty 
parsed_content.find("a", {"href":re.compile("^.+$")}) 
0

這一個將每行匹配至少1個字符:

(.*?(\n))