2016-07-14 141 views
0

之間的空格字符所有出現我有這樣查找特定的標籤

"<content> </content><p>some content</p><content>  </content>" 

字符串我已經加入一號內容標籤,並在第二內容標籤之間的5空格之間,4個空格字符。所以總共有9個空格字符。

我想要一個正則表達式,它將與內容標記之間的所有空格字符完全匹配。

我已經試過這

/<content> +<\/content>/g 

但是這給了我2場比賽。我需要9個空格字符的匹配。正確的正則表達式是什麼?

+0

內容標籤中是否可以有空格以外的字符?總是有4或5個空格嗎?如果不是,是否有最大數量的空格?什麼是你想要替換空格的符號 - 字符或更長的字符串?所有的令牌都是相同的,或者對於不同長度的空間是不同的,或者對於每一個空間都是不同的? – Armali

+1

是的,可以有其他字符。但我只想找到那些內含空格的內容標籤。並且每個空格字符都必須由一個更長的字符串代替。這個標記對於每個空間字符都是一樣的。 –

回答

0

它給你2場比賽,因爲有兩次出現<content>標記(打開和關閉),其間有空格。

你需要的是這樣的:

for (/<content>(+)<\/content>/g) { 
    print length $1; 
} 

,將捕獲標籤之間的空間,並打印出該字符串的長度(實質上的空格數)。

+1

但實際上我需要用一些標記來查找和替換內容標記之間的空格。使用上面的解決方案找到空格後,我將不得不用原始字符串中的標記替換標記。我想用php的'preg_replace'來替換內容標籤中的空格字符 –

0

我想用PHP的preg_replace在 內容標籤來代替空格字符

我不認爲它可以只用preg_replace做事情。我建議:

$str = "<content> </content><p>some content</p><content>  </content>"; 
$str = preg_replace_callback('-<content>.*?</content>-', 
          function($found) 
          { return str_replace(' ', 'TOK', $found[0]); }, 
          $str 
          );