[英]Extract a string between two set of patterns in Python
我正在尝试使用re.search()
在两组模式之间提取 substring 。
左边可以是0x
或0X
,右边可以是U
,
,或\n
。 结果不应包含边界模式。 例如, 0x1234U
应该导致1234
。
我尝试使用以下搜索模式: (0x|0X)(.*)(U| |\n)
,但它在结果中包含左右模式。
什么是正确的搜索模式?
您可以将lookbehind 和lookahead 的组合与非贪婪匹配模式结合使用:
import re
pattern = r"(?<=0[xX])(.*?)(?=[U\s\n])"
re.findall(pattern,"---0x1234U...0X456a ")
['1234', '456a']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.