報價:[\d\s]{6,12}
拿起與空間的字符串。如果我不查找空格,它不匹配,所以它不會返回任何內容。 Freespacing也不會返回任何東西。
小心,那是不什麼,這樣的設計做的,它是在這裏工作只是巧合。你也可以得到未知的比賽,比如12個空格,12個數字,4個數字和2個空格,3個數字和6個空格。 {6
是量詞範圍的下限,12}
是上限。 \s
還包含任何空格字符,因此各種各樣的newine,表單提要和選項卡可以是您的字符串。
Freespacing
是完全不同的東西,它只會使您的正則表達式中的空白字符不相關,這樣您就可以以更易讀的格式進行書寫。
不知道更多,找到你的匹配最好的正則表達式可能是這樣的,因爲它是很清楚的閱讀。您需要爲此關閉freespacing
。
(?:(\d) (\d) (\d) (\d) (\d) (\d))
像this引用組$1$2$3$4$5$6
- 對於剛剛搜索,你可以做
\d \d \d \d \d \d
- 或用freespacing
(?:(\d)[ ](\d)[ ](\d)[ ](\d)[ ](\d)[ ](\d))
(\d\s){6}
也將匹配您的pattern--如果有一個尾隨的spac e,其中\s
取決於風味,幾乎是任何whitespace
字符(用於分組的圓括號,而不是用於字符類的方括號),但不適用於替換操作。
即使(\d\s?){6}
,正如註釋中所引用的那樣,即使沒有空格,也存在允許使用6位數字符串(例如235211
)的缺陷。這是因爲?
在這種情況下意味着0 or 1 times, as many times as possible
。所以如果它在那裏,就抓住它,如果沒有,就不要理它。鑑於源的設計,這個正則表達式可以作爲一個簡單的查找解決方案(?:\d\s(?:\s|$))
其中(?:\s|$)
意味着whitespace character, or if that's not present end of string/line
取決於標誌。
http://stackoverflow.com/editing-help –
正則表達式可以匹配一個字符串與2位數與4到10之間的空間:0 – jace
類似於((\ d \ s?){6}'? – sideroxylon