Python Regex - 在html标签之间查找字符串

Jun*_*ook -1 html python regex

我试图在Html标签之间提取字符串.我可以看到类似的问题之前已经被问过堆栈溢出,但我对python是全新的,我正在努力.

所以,如果我有

<b>Bold Stuff</b>
Run Code Online (Sandbox Code Playgroud)

我希望有一个让我留下的正则表达式

Bold Stuff
Run Code Online (Sandbox Code Playgroud)

但到目前为止我的所有解决方案都给我留下了类似的东西

>Bold Stuff<
Run Code Online (Sandbox Code Playgroud)

我真的很感激任何帮助.

我有

>.*?<
Run Code Online (Sandbox Code Playgroud)

我已经看到有关堆栈溢出的问题与建议的解决方案

>([^<>]*)<
Run Code Online (Sandbox Code Playgroud)

但这些都不适合我.请有人解释如何写一个正则表达式,"找到字符x和y之间的字符串,不包括x和y".

谢谢你的帮助

Kev*_*uan 5

>>> a = '<b>Bold Stuff</b>'
>>> 
>>> import re
>>> re.findall(r'>(.+?)<', a)
['Bold Stuff']
>>> re.findall(r'>(.*?)<', a)[0] # non-greedy mode
'Bold Stuff'
>>> re.findall(r'>(.+?)<', a)[0] # or this, also is non-greedy mode
'Bold Stuff'
>>> re.findall(r'>(.*)<', a)[0] # greedy mode
'Bold Stuff'
>>> 
Run Code Online (Sandbox Code Playgroud)

此时,贪婪模式和非贪婪模式都可以工作.

你正在使用第一种非贪婪模式.这是一个关于非贪婪模式和贪婪模式的例子:

>>> a = '<b>Bold <br> Stuff</b>'
>>> re.findall(r'>(.*?)<', a)[0]
'Bold '
>>> re.findall(r'>(.*)<', a)[0]
'Bold <br> Stuff'
>>> 
Run Code Online (Sandbox Code Playgroud)

以下是关于什么(...):

(......)

匹配括号内的正则表达式,并指示组的开始和结束;

在执行匹配后,可以检索组的内容,并且可以在字符串中稍后使用\number特殊序列进行匹配,如下所述.

要匹配的文字()使用\(\),或将它们括字符类中:[(] [)].