2012-08-17 39 views
0

我有一个字符串,其中包含几个地方的\r\n以及某些地方的\n。 这是一个示例:正则表达式中的更正

\r\nThis is an\nexample\nand I need\na\nsolution\r\nr\nOK\r\n 

现在我只需要This is an\nexample\nand I need\na\nsolution\n沿着它
这场比赛是我试过的工作虽然

\r\n([\s\w]+)\r\n 

这读取完整的字符串表达式。修正请

回答

2

你不希望这是在句子中\r是你比赛?你可以使用一个负匹配:

\r\n([^\r]+)\r\n 

我相信使用\s将同时匹配\r\n为空格字符

+0

谢谢你的工作! – Cdeez 2012-08-17 10:15:10

0

尝试使用非贪婪量词?

\r\n([\s\w]+?)\r\n 
+0

工程。我可以像这样匹配:'\ r \ nSucess \ r \ n \ r \ nOK \ r \ n'和这个:'\ r \ nThis是一个\ nexample \ nand我需要\ na \ nsolution \ r \ nr \ nOK \ r \ n'但不是这样:'\ r \ n新闻快讯!随时更新最新动态。 Just Dial * 777 * 17#Charges Re.1 per day \ r \ n \ r \ nOK \ r \ n' – Cdeez 2012-08-17 10:09:41

+0

@ Daniel:我得到了解决方案,但想知道'?'量词。你能解释一下吗? – Cdeez 2012-08-17 10:24:46

+0

非贪婪量词基本上是这样说的:“选择与表达式匹配的结果并且其中包含最少量的字符”。例如:字符串:'aaaa'。表达式'a +?'将匹配'a'。表达式'a +'将匹配'aaaa'。 '?'尽可能少匹配。 – 2012-08-17 10:29:14

0

一个多懒惰的比赛应该工作:

/\r\n(.+?)\r\n/m 
+0

与字符串不匹配..钕为什么'/'? – Cdeez 2012-08-17 10:04:38

+0

'/'是一个普通的正则表达式分隔符,例如在JavaScript和Ruby中,'m'是一个多行修饰符。只需使用\ r \ n(。+?)\ r \ n'并设置多行选项。 – Stefan 2012-08-17 10:09:54

相关问题