我有以下字符串:
"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' )
答案 0 :(得分:1)
这适用于您:\S+(?:\s*\|\|\s*\S+)+
答案 1 :(得分:0)
在我看来你需要第一个“单词”直到空格,然后是WHERE和=之间的内容。基本上我的建议是在这种情况下寻找更简单的模式匹配标准。