c#Regex - 匹配模式XXX || XXX(双管前后的文字)

时间:2012-11-08 15:01:57

标签: regex

我有以下字符串:

"g1_fim[7,8] || '/' || g1_fim[5,6] || '/' || g1_fim[1,4] dt_final, campo1, campo2 WHERE **d1_fim || d2_teste** = 'sadasd'"

我想要一个正则表达式来匹配X || X(双管之前和之后的文本)

结果应该类似于这两个匹配:

 1. g1_fim[7,8]||'/'||g1_fim[5,6]||'/'||g1_fim[1,4]
 2. d1_fim||d2_teste

我曾尝试使用此表达式.*?(\|\|).*?(?=\s)

结果是:

 1. g1_fim[7,8]||'/'||g1_fim[5,6]||'/'||g1_fim[1,4]  ( its ok !!! )
 2.  dt_final, campo1, campo2 WHERE d1_fim||d2_teste  (it´s not ok, I´d like to return here only the 'd1_fim||d2_teste' )  

2 个答案:

答案 0 :(得分:1)

这适用于您:\S+(?:\s*\|\|\s*\S+)+

答案 1 :(得分:0)

在我看来你需要第一个“单词”直到空格,然后是WHERE和=之间的内容。基本上我的建议是在这种情况下寻找更简单的模式匹配标准。