相当于否定look-behind断言Regex-Python中的(.*)

2024-06-28 19:43:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python编写一个否定的lookbehind断言表达式,它执行以下函数来解析纯文本文件:

不匹配http://*********;但当模式不在http://*链接中时,将匹配该模式

Example:
http://www.test.com/aa4   cd6
bx2 vq9 
yu9 http://www.bh9.com/cj3

Matches: cd6,bx2,vq9 and yu9

所以我试过正则表达式

^{pr2}$

他们没有工作。在

在Python中如何在断言regex中添加*或在negative look-behind断言regex中执行类似的操作。在


Tags: 函数comhttp表达式链接www模式断言
2条回答

那是不可能的。Python只允许固定长度的lookbehind。这意味着在lookbehind中没有量词。在

请参阅egular-expressions.info上的功能列表

问题:Lookbehind不允许长度不固定的模式。在

快速破解:也许下面的regexp可以完成这个任务?在

r'(?<![./])[a-z][a-z][0-9]'

它是这样工作的:

^{pr2}$

或者-作为另一种解决方案-使用匹配url的regexp来切断字符串中的所有url,然后搜索r'[a-z][a-z][0-9]'

相关问题 更多 >