我在下面的佈局一些代碼,即時通訊使用textcrawler做一個查找和替換正則表達式改變文本
<a>
Name=LineA
epsium
ask
answer
line=10
color=red
</a>
<a>
Name=LineB
Color=Blue
</a>
...
現在的問題是正則表達式我需要什麼使用,以便除去之間<a> and </a>
我在下面的佈局一些代碼,即時通訊使用textcrawler做一個查找和替換正則表達式改變文本
<a>
Name=LineA
epsium
ask
answer
line=10
color=red
</a>
<a>
Name=LineB
Color=Blue
</a>
...
現在的問題是正則表達式我需要什麼使用,以便除去之間<a> and </a>
<a>(\s*?Name\=LineB[\S\s]*?)</a>
它捕獲與所述TE開始之間幷包括<a></a>
標籤的所有文本代碼的第二塊xt Name=LineB
。
我認爲你會走向正確的方向,除非我不能匹配/硬編碼字符的數量,我想在標籤之間捕獲名字LineB – EvenPrime
然後@sln是對的:'(\ s * Name \ = LineB。* ?)'應該匹配第二塊。 – Utensil
試過,仍然無法獲得塊:( – EvenPrime
在Perl中,我會做:
$str =~ s~^(.*?<a>.*?</a>.*?)<a>.*?</a>(.*)$~${1}New text$2~s;
第一組包含第二塊<a></a>
,第二組後一切之前的一切。
在PHP中:
$str = preg_replace('~^(.*?<a>.*?</a>.*?)<a>.*?</a>(.*)$~', "${1}New text$2", $str);
preg_replace("/<body>([\s\S]*.*)<\/body>/",$replace,$origional);
這將替代body標籤之間的全部內容。
請不要將[解決]添加到您的答案,這是爲了讓別人來決定... – NigelK
你能告訴我們你試過的東西嗎? –
我試過(。*),但它選擇了整個東西 – EvenPrime
爲什麼第二塊代碼比第一塊更重要? '。*?'得到第一塊。而且你不需要括號。 – sln