2015-03-13 42 views
1

我需要使用正則表達式從一些文本中檢索子字符串。目標的模式是他們都開始與一個特定的字符串結尾,比如我需要從下面得到「ABC」和「DEF」之間的一切:.Net正則表達式來檢索帶有開始和結束字符串的子字符串

XXXXXXXXXXX ABC XXXXXXXXX 高清 XXXXXXXX

我使用的表達

ABC。*高清

由於「。*」表示任何長度的字符。

但是對於這個任務中的某些情況,我不需要檢索「abc」和「def」,只需要檢索其中的所有內容。我可以使用字符串操作來修剪頭部和尾部,但是我想知道是否有正則表達式可以完成這項工作。

謝謝。

+1

爲什麼不只是讓你的正則表達式abc(。*)def只捕獲中間部分? – m0meni 2015-03-13 19:52:00

回答

3

在這種情況下,Lookaround將有所幫助。這裏的表達式:

(?<=abc).*(?=def) 
+1

使用lookaround而不是做這樣的事情有什麼好處:'abc(。*)def'? – m0meni 2015-03-13 19:51:07

+0

「abc(。*)def」將匹配整個「abcXXXdef」字符串,然後將「XXX」作爲捕獲組。使用lookaround表達式「(?<= abc)。*(?= def)」,您只需從get go中匹配「XXX」,而不必混淆捕獲。這只是一點點清潔。 – Colin 2015-03-13 19:59:01

相關問題