2011-03-02 102 views
1

您好,我真的很困擾這個問題;正則表達式模式匹配:僅使用模式的開始和結束進行匹配

我想用正則表達式來匹配模式的中間可以改變的模式的開始和結束。所以我想使用一個正則表達式來匹配不斷的開始,並且不斷的結束任何人都可以幫忙?

例如,該模式的開始是「/>」,並用「ABC」

我使用C#結束。

感謝

+1

請提供樣品。 – 2011-03-02 11:09:48

+0

...請詳細描述開始/結束可能看起來像什麼(字母,數字,標點符號...)以及允許哪些文字介於兩者之間。還請指定是否要在較大的文本中查找*這種模式,或者如果您希望*匹配給定的字符串與正則表達式。 – 2011-03-02 11:28:20

+0

例如,模式的開始是「/>」並以「abc」結尾..... – user101010101 2011-03-02 11:31:48

回答

4
^abc(.*)xyz$ 

將匹配寄託都與ABC開始,與XYZ結束。

0

您正在尋找的關鍵項目是^匹配行的開始和$匹配行的結尾。您可以在模式中使用這些字符來檢查字符串開頭或結尾的特定字符。

2

有幾種選擇:

比方說你有文字:

<foo/> hello first abc hello second abc <bar/> hello third abc 

我將呈現三大正則表達式,它們將匹配的內容:

/\/>.*abc/ 

將匹配:

/> hello first abc hello second abc <bar/> hello third abc 

相反匹配貪婪的,你也可以採取儘量少:

/\/>.*?abc/ 

這將匹配

/> hello first abc 
/> hello third abc 

但也許你想匹配的貪婪,而不是當一個標籤被打開之間,比你可以爲實例來:

/\/>[^<]*abc/ 

這WIL比賽

/> hello first abc hello second abc 
/> hello third abc 

如果您更加清晰地明確你想要什麼,我能更清楚地說明我的回答。)

+0

我試圖添加代碼註釋,但它變得非常混亂。我已經厭倦了實現你上面顯示的內容,但是我無法使它工作,請你看看。 string pattern = @「/ \ /> [^ <] * abc /」; – user101010101 2011-03-02 14:21:07

+0

我註釋了事實上的標準語法,斜槓之間。 Perl和類似的工具就是這樣做的。在C#中,它只是一個字符串,並且不需要前導斜槓和尾部斜槓,也不需要轉義斜槓,因此它將變成:string pattern = @「/> [^ <] * abc」; – markijbema 2011-03-02 14:35:53

0
^\/\u003E.*?abc$. 

這將匹配字符串開頭「/>」,並以「ABC」,如結束「/> XYZABC 「