[英]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.