2011-12-05 97 views
0

我使用C#正則表達式類下次重:排除從正則表達式字符串在C#

[^\r\n]+[^,"condicionesDePago"] 

在接下來的文本搜索:

「CREDITO 30 DIAS」, 「condicionesDePago」

我想要得到的左半部分,在這種情況下:「CREDITO 30個DIAS」,但我只得到:「CREDITO 30

什麼即時消失?

+0

請看http://www.regular-expressions.info/tutorial.html – oberfreak

回答

2

看起來你對字符類的用法有誤解。它不是用言語操作,而是用單個字符操作。 [^,"condicionesDePago"]的這一部分表示一個字符應該匹配,只要它是而不是逗號,雙引號或該字中指定的字母表。

你可能打算用前瞻:

@"[^\r\n]+(?=,""condicionesDePago"")" 

或者,這可以寫成如下,只要將不匹配\nRegexOptions.Singleline未指定(但能匹配\r) :

@".+?(?=,""condicionesDePago"")"; 
0

如果你總是期望文本是上面的格式,那麼你可能想在你的對手明確:

"(\w+ [0-9]+ \w+)"(?=,"condicionesDePago") 

這應該與Credit 30 Days(即模式字母數字字母 - \ w + [0-9] * \ w +),然後是condicionesDePago - (?=,「condicionesDePago」) - 稱爲積極預測。

我總是用http://derekslager.com/blog/posts/2007/09/a-better-dotnet-regular-expression-tester.ashx來測試我的正則表達式,但我敢打賭,其他人也有自己的喜好。

相關問題