我正在尝试使用正则表达式从Python这样的~~o3i320-4fjkhe~~
模式中提取内容。
我尝试了以下方法:
pattern1 = r'\~\~(.*?)\~\~'
pattern2 = r'~~(.*?)~~'
m = re.search(pattern2, text)
print(m.group()[2:-2])
pattern1
和pattern2
均无效。我是正则表达式的新手,正在为此而苦苦挣扎。不太确定我在这里缺少什么。任何帮助是极大的赞赏!谢谢!
答案 0 :(得分:2)
您错误地访问了比赛。您要访问第一个捕获组:
text = "~~o3i320-4fjkhe~~"
pattern = r'\~\~(.*?)\~\~'
m = re.search(pattern, text)
print(m.group(1))
print(m.group(1)[2:-2])
o3i320-4fjkhe
i320-4fjk
更新:如果您真的想使用完全匹配,我们可以尝试在模式中使用环视:
text = "~~o3i320-4fjkhe~~"
pattern = r'(?<=~~)(.*)(?=~~)'
m = re.search(pattern, text)
print(m.group())
o3i320-4fjkhe