我想使用正则表达式从字符串中提取子字符串ie。以下输入/输出列表显示了我真正想要的内容。我需要从字符串中提取dept过滤条件。 这里的单词 [dept] 是常量。那么正则表达式在这种场景中提取子字符串的用途是什么
Input------------------------------------------------Output
Some conditions And [dept]=IT [dept]=IT
Some conditions And [dept]=IT Or [dept]=Account [dept]=IT Or [dept]=Account
Some conditions And [dept] IN ('IT','Account') [dept] IN ('IT','Account')
[dept]=IT And some conditions [dept]=IT
[dept]=IT Or [dept]=Account And some conditions [dept]=IT Or [dept]=Account
[dept] IN ('IT','Account') And some conditions [dept] IN ('IT','Account')
答案 0 :(得分:2)
这可能接近你的目标
(\[dept\]=\w+)( (Or)|(And))?|(\[dept\] IN \(.+?\))
它匹配您的样本输入,如下所示,分组为()。
([dept]=IT)
([dept]=IT Or) ([dept]=Account)
([dept] IN ('IT','Account'))
在您的脚本中,您可以加入每一行的群组,即加入([dept]=IT Or) ([dept]=Account)
但是如果在评论中建议您确实正在解析SQL,那么有一些SQL解析器可以让您准确访问查询WHERE表达式。
答案 1 :(得分:1)