我正在尝试解析SQL查询连接条件。我需要提取包含(+)
的行,并基于extract对其进行分组。我使用的是python3.6
下面是我的测试字符串:
1. a.deptno = b.dept_no(+)
2. c.deptno(+)=b.dept_no
3. a.deptno(+)= 900
First : I need to extract lines which has
(+)
second : Need to extract the alias for example
1. a , b
2. c , b
3. a
到目前为止,我一直在尝试regex
使用([\w_]+).*?([\w_]+)\(\+\)
我可以提取第一组,但第二组似乎有一些问题。你知道吗
任何建议都会很有帮助
您可以使用positive lookahead
(?=
断言字符串包含(+)
。你知道吗然后你就可以在一个捕获组中匹配你的值。你知道吗
^{}
匹配:
^
行的开始(?=.*\(\+\))
断言后面包含(+)
的正向前瞻(\w+)\.
在一个组中捕获一个或多个单词字符(组1),后跟一个点[^=]+
一次或多次不匹配=号=\s*
匹配一个=符号,然后再匹配零个或多个空格字符(?:
非捕获组(\w+)\.
在一个组中捕获一个或多个单词字符(组2),后跟一个点)?
关闭非捕获组并使其成为可选的.*$
匹配任何字符零次或多次,直到行尾$
希望这有帮助。你知道吗
相关问题 更多 >
编程相关推荐