如何在一條線上如何在網上搜索了的單詞之間的多個空格出現
1. this is a line containing 2 spaces
2. this is a line containing 3 spaces
3. this is a line containing multiple spaces first second three four
這個正則表達式上述所有有效匹配搜索的詞之間的多個空格出現。我應該使用哪種正則表達式?
如何在一條線上如何在網上搜索了的單詞之間的多個空格出現
1. this is a line containing 2 spaces
2. this is a line containing 3 spaces
3. this is a line containing multiple spaces first second three four
這個正則表達式上述所有有效匹配搜索的詞之間的多個空格出現。我應該使用哪種正則表達式?
[ ]{2,}
SPACE(2個或更多)
你也可以查看之前和那些空間的話跟從。 (如製表符或換行沒有其他空格)
\w[ ]{2,}\w
一樣的,但你也可以選擇(捕獲)只有空間的任務,如更換
\w([ ]{2,})\w
或看到之前和之後的空間有是什麼,不僅是單詞字符(除空格)
[^\s]([ ]{2,})[^\s]
'\ w'表示'單詞字符',即字母數字和下劃線,但不包含其他非空格字符。要檢查非空白,使用'\ S'(大寫字母S)。此外,第一個將只匹配包含兩個或更多空格的行,而不包含其他任何內容。 – tdammers 2010-09-21 09:19:51
我試圖發展這個問題。我明白我錯過了你用'\ S'說的話,我只是不想依賴字符大小寫來獲得這樣的功能,它更容易閱讀。 – AlexanderMP 2010-09-21 09:22:49
你爲什麼使用錨?他正在尋找嵌入線路中的空間。 – 2010-09-21 09:43:01
簡單的解決方案:
/\s{2,}/
這匹配一個或多個空格字符的所有匹配項。 如果您需要將整行匹配,但只有當它包含兩個或多個連續的空格字符:
/^.*\s{2,}.*$/
如果空格不需要是連續的:
/^(.*\s.*){2,}$/
'。*'通常是貪婪的,這意味着它會到達被測試字符串的末尾,並且如果有必要的字符,則後面的全部都不匹配。通常在這種情況下,添加'?'是一種很好的做法,就像'。*?'。它發生在我身上使用PHP的PCRE – AlexanderMP 2010-09-21 09:35:34
它確實匹配。 「貪婪」意味着它儘可能匹配,同時仍然與整個模式相匹配。 '/^.* b。* $ /'確實符合'「foobar」',即使您希望第一個貪婪的'。*'匹配整個字符串。 – tdammers 2010-09-21 10:10:18
搜索[ ]{2,}
。這將在該行內的任何位置找到兩個或更多個相鄰空間。它也將匹配前後空格以及完全由空格組成的行。如果你不想那樣,看看亞歷山大的答案。其實,你可以省略括號,它們只是爲了清楚(否則空間字符重複是不是很好的可見:))。
與\s{2,}
的問題是,它也將匹配在Windows文件換行符(其中換行符被CRLF
或\r\n
這是由\s{2}
匹配表示。
如果你也想找到多個標籤和空格,使用[ \t]{2,}
。
'一行中的單詞之間有多於一個空格。單詞之間的[] {2,}如何?你甚至讀過這個問題嗎? – AlexanderMP 2010-09-21 10:02:51
這就是爲什麼我已經提到你的答案,以防OP真的想要像他寫的那樣嚴格。也許我們應該問他。 – 2010-09-21 11:32:00
這裏是我的解決方案
[^0-9A-Z,\n]
這將刪除所有的數字,逗號和新線,但選擇粗粉樂空間,例如數據集的
你們是不是要檢查的連續空格或所有空格在該行? – 2010-09-21 09:14:53
連續的空白不是所有的空格 – Sam 2010-09-21 09:22:19
你是什麼意思的「之間的話」?在你的兩個例子中,一個單詞和一個數字之間有多個空格。標點符號是什麼(例如,你想在一個點之後和下一個單詞之前匹配多個空格)?一行中最後一個字符前後的空格是什麼?你也想匹配標籤嗎?那些除了空白之外什麼都沒有的線呢? – 2010-09-21 11:35:35