0

我有下面的字符串:

"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' )  
4

2 回答 2

1

这对你有用吗:\S+(?:\s*\|\|\s*\S+)+

于 2012-11-08T20:55:35.480 回答
0

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

于 2012-11-08T15:08:48.137 回答