2010-10-06 46 views
-3

可能重複:
Regex help required正則表達式幫助需要 - V2格式

我試圖取代的兩個或多個正好< BR/>(如< BR/> < BR/> < br/>)tags with two < br/> < br/>與下面的模式

Pattern brTagPattern = Pattern.compile("(<\\s*br\\s*/\\s*>\\s*){2,}", 
    Pattern.CASE_INSENSITIVE | Pattern.DOTALL); 

但也有一些情況下,「< BR/> < BR/>」標籤配有空間,他們得到與它實際上應該是4 < BR/>變量替換換成只有2個標籤。

我能做些什麼來忽略標籤之間出現的2或3個(少數)空格?

+5

完全相同的副本[正則表達式所需的幫助(http://stackoverflow.com/questions/3872652/regex-help-required) – 2010-10-06 13:48:01

+0

您有一個在編輯問題標籤下的「編輯」鏈接,您可以使用它來編輯原始問題。無需打開一個新的。正如你所看到的,這些將很快關閉,併爲你賺取低價。但是你應該*通過編輯你的問題,肯定回答你之前問題的評論。 – 2010-10-06 14:11:18

+0

@Tim Pietzcker:謝謝蒂姆,我對這個很有新意並且很着急:) – 2010-10-08 07:44:04

回答

-1

你可以做,改變一點點您正則表達式:

Pattern brTagPattern = Pattern.compile("<\\s*br\\s*/\\s*>\\s*<\\s*br\\s*/\\s*>\\s*", Pattern.CASE_INSENSITIVE | Pattern.DOTALL); 

這會忽略2
之間的每一個空間。如果你只是想正好2或三個,你可以使用:

Pattern brTagPattern = Pattern.compile("<\\s*br\\s*/\\s*>(\\s){2,3}<\\s*br\\s*/\\s*>\\s*", Pattern.CASE_INSENSITIVE | Pattern.DOTALL); 
+2

這兩行都不會在Java中編譯 – 2010-10-06 13:56:10

+2

我使用了與用戶在問題中使用的語法相同的語法,我不知道他正在使用的語言。我剛剛使用他的語法添加了他需要的東西(他沒有說它是Java)。在Java中,您應該雙重轉義字符(但在這種情況下應該更改該問題) – greuze 2010-10-06 14:12:38

+0

從編輯開始,您使用正確的語法,問題總是標記爲Java,並且問題中的正則表達式正常,如預期。更改正則表達式不是必需的http://stackoverflow.com/questions/3872652/regex-help-required – 2010-10-06 22:31:16