查找粗体/下划线字符串的正确正则表达式(Python)

Leg*_*490 -2 python regex

所以我想在字符串中找到两组标准。例如:

import re
bold_pattern = re.compile() #pattern for finding all words in between ** **
underline_pattern = re.compile() # pattern for finding all words in between __ __
a = "__Hello__ **This** __is__ **Lego**"
Run Code Online (Sandbox Code Playgroud)

我将如何在正则表达式上做到这一点?

Aus*_*tin 5

使用捕获模式捕获两个模式之间的单词:

bold_pattern = re.compile(r'\*\*(.*?)\*\*')   # pattern for finding all words in between ** **
underline_pattern = re.compile(r'__(.*?)__')  # pattern for finding all words in between __ __
Run Code Online (Sandbox Code Playgroud)

然后将它们用于re.findall

bolds = re.findall(bold_pattern, a)
# or: bold_pattern.findall(a)
underlines = re.findall(underline_pattern, a)
# or: underline_pattern.findall(a)
Run Code Online (Sandbox Code Playgroud)