str = """
原告:芊大跌生物科技有限公司。注册地址:广州市海珠区新港东路 241143
号 202 房。统一社会信用代码: 91440101M1111111.电话:123 。
法定代表人:林子点。
原告:林子点,女, 1998 年 1 月 1 日出生,身份证号: 4409021111081111116 ,注册地址:
广东省茂名市茂南区新建路二巷 92111 号。
被告一:广州昂立一号口服液。注册地址:广州市海珠区南华中路 281111
号。统一社会信用代码: 91440111111111113 。
负责人:王斐点。
被告二:广州市海珠区琶洲街黄埔南。注册地址:广州市海珠区新
港东路黄埔村。统一社会信用代码: 551111111MEA359637P 。
"""
#这样只能获取到原告电话,但是,当原告 2 没有电话时候,结果就是其他字段了,怎么解决?
rst = re.findall(r'原告.{0,1}[:|:|;](.*?)[,|。|,|;]+[^联系|电话]+[联系方式|电话|电话号码]+[:|:|;]+(.*?)[,|:|、|,|。|\.|;|联系]', str)
print(rst)
1
ChaosesIb 2022-03-24 14:30:22 +08:00
[^联系|电话]+ 匹配到了末尾,回溯后 [联系方式|电话|电话号码]+ 匹配到了信用代码,最后 .*? 就出问题了。
建议你先学下正则基本语法,字符组里不需要写 |,多字符分支需要用分组,把这些毛病改了就自然修好了。 另外,这个问题该发到正则节点。 |
2
Lonenso 2022-03-24 19:50:52 +08:00
除了应该学习一下正则以外,推荐用 https://regex101.com/ 练习和调试。
|
5
imn1 2022-03-25 17:22:39 +08:00
联系|电话 --> 联 + (系|电) + 话
但前面加上排除符就变成了排除 联系|电话 这五个字符,强调:是五个字符,不是四个 我这样写你看明白了么? 关于排除字符串(两个字符或以上连续),请搜索 “正则排除” 的相关文章 |