以特定模式提取引号之间的文本
Extracting text between quotation marks in a specific pattern
string = "'Banana' aaaa 'Melon' aaa 'Strawberry' aaaaa 'Apple' aaaa 'Mango'bbb 'Watermelon' aaaa"
引号括起来的单词中bbb左右两边的'mango'和'watermelon'应该用什么正则表达式?
\'.+?\'
我只知道引号之间的单词
您可以使用 re.findall
两次:
string = "'Banana' aaaa 'Melon' aaa 'Strawberry' aaaaa 'Apple' aaaa 'Mango'bbb 'Watermelon' aaaa"
string = re.findall(r"'\S+'\s*bbb\s*'\S+'", string)[0]
matches = re.findall(r"'(.*?)'", string)
print(matches) # ['Mango', 'Watermelon']
第一次调用 re.findall
将字符串隔离为 bbb
,两边都有两个单引号。然后,我们再次调用 re.findall
来提取引用的术语。
string = "'Banana' aaaa 'Melon' aaa 'Strawberry' aaaaa 'Apple' aaaa 'Mango'bbb 'Watermelon' aaaa"
引号括起来的单词中bbb左右两边的'mango'和'watermelon'应该用什么正则表达式?
\'.+?\'
我只知道引号之间的单词
您可以使用 re.findall
两次:
string = "'Banana' aaaa 'Melon' aaa 'Strawberry' aaaaa 'Apple' aaaa 'Mango'bbb 'Watermelon' aaaa"
string = re.findall(r"'\S+'\s*bbb\s*'\S+'", string)[0]
matches = re.findall(r"'(.*?)'", string)
print(matches) # ['Mango', 'Watermelon']
第一次调用 re.findall
将字符串隔离为 bbb
,两边都有两个单引号。然后,我们再次调用 re.findall
来提取引用的术语。