从字符串中获取方程式
Get equations from string
我有以下模式的字符串
( var1=:key1:'any_value including space and 'quotes'' AND/OR var2=:key2:'any_value...' AND/OR var3=:key3:'any_value...' )
我想从中得到以下结果。
:key1:'any_value including space and 'quotes''
:key2:'any_value...'
:key3:'any_value...'
有人可以推荐 pattern/RE 吗?
失败的尝试:
首先,我可以将其拆分为 AND/OR
,然后再次拆分 :
上的更多字符串,依此类推,但寻找可以做到这一点的单个 RE/Pattern。
您可以使用此带否定模式的正则表达式来匹配您的数据:
":[^:]+:'.*?'(?=\s*(?:AND(?:/OR)?|\)))"
分手:
: # match a literal :
[^:]+ # match 1 or more characters that are not :
: # match a literal :
' # match a literal '
.*? # match 0 or more of any characters (non-greedy)
' # match a literal '
(?=\s*(?:AND(?:/OR)?|\))) # lookahead to assert there is AND/OR at the end or closing )
我认为这适合您的情况。
除非您知道引号解析,否则您无能为力。
原始:(?<==)(?:(?!\s*AND/OR).)+
引用:"(?<==)(?:(?!\s*AND/OR).)+"
展开:
(?<= = ) # A '=' behind
(?:
(?! \s* AND/OR ) # Not 'AND/OR' in front
.
)+
我有以下模式的字符串
( var1=:key1:'any_value including space and 'quotes'' AND/OR var2=:key2:'any_value...' AND/OR var3=:key3:'any_value...' )
我想从中得到以下结果。
:key1:'any_value including space and 'quotes''
:key2:'any_value...'
:key3:'any_value...'
有人可以推荐 pattern/RE 吗?
失败的尝试:
首先,我可以将其拆分为 AND/OR
,然后再次拆分 :
上的更多字符串,依此类推,但寻找可以做到这一点的单个 RE/Pattern。
您可以使用此带否定模式的正则表达式来匹配您的数据:
":[^:]+:'.*?'(?=\s*(?:AND(?:/OR)?|\)))"
分手:
: # match a literal :
[^:]+ # match 1 or more characters that are not :
: # match a literal :
' # match a literal '
.*? # match 0 or more of any characters (non-greedy)
' # match a literal '
(?=\s*(?:AND(?:/OR)?|\))) # lookahead to assert there is AND/OR at the end or closing )
我认为这适合您的情况。
除非您知道引号解析,否则您无能为力。
原始:(?<==)(?:(?!\s*AND/OR).)+
引用:"(?<==)(?:(?!\s*AND/OR).)+"
展开:
(?<= = ) # A '=' behind
(?:
(?! \s* AND/OR ) # Not 'AND/OR' in front
.
)+