簡體   English   中英

我該如何將此文本與正則表達式匹配?

[英]How can i match this text with a regex?

我試圖做一個正則表達式來匹配一段代碼,但是沒有成功。 該表達式在vs2008中不起作用。

我創建了這個:

/\*<parameters>\*/(?<value>[\r\n]*.*)/\*</parameters>\*/

匹配的來源是:

/*<parameters>*/ 
@parameter blue
,@parameter2 red
,@parameter3 green
,@parameter4 yellow /*</parameters>*/

或更好:

/*<parameters>*/  \r\n @parameter blue \r\n ,@parameter2 red \r\n ,@parameter3 green \r\n ,@parameter4 yellow /*</parameters>*/

有誰能夠幫助我?

謝謝羅德里戈·羅伯

嘗試以下正則表達式: /\\*<parameters>\\*/(?<value>[^/]*)/\\*</parameters>\\*/

真正的C#正則表達式模式的一個很好的工具是code.google.com上的regex-freetool

RegexOptions.Multiline僅更改^$的語義-您需要RegexOptions.Singleline來使. 也匹配線尾(我一直迷惑自己;-)。

以下將解決問題:

/\*<parameters>\*/(.|\r|\n)*/\*</parameters>\*/

或者,如果您想從匹配項本身中排除外部標記:

(?<=/\*<parameters>\*/)(.|\r|\n)*(?=/\*</parameters>\*/)

在打開正則表達式的“多行”選項后,您的正則表達式應與您指定的所有文本匹配。

如Alex所述,您可以使用Singleline修飾符讓點匹配換行符(\\ r和\\ n)。 您還可以使用內聯形式- (?s) -在正則表達式本身中指定它:

(?s)/*<parameters>*/(?<value>.*?)/*</parameters>*/
還要注意勉強的量詞:“ .*? ”。 如果文本中存在多個潛在匹配, 否則,您將從第一個<parameters>標記匹配到最后一個</parameters>標記。

我不想給你這個問題,所以您可能想嘗試一下Ultrapico的免費工具(已注冊),稱為Expresso

我在Regex上跌跌撞撞已經有好幾次了,而Expresso在所有情況下都節省了一天的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM