@
liuidetmks 可能你说的是 [灾难性回溯](
https://zh.javascript.info/regexp-catastrophic-backtracking ) ?
@
blackantt 实在不想改你的正则了,你自己去
regex101.com ,把你的正则、html 丢进去,看看都匹配了 7 个啥吧
帮你把正则改成这样,然后在左边选择 `ECMAScript (JavaScript)` 引擎,可以看到每个匹配 *(淡蓝色)* 及其各自的 6 个 `(.*?)` *(绿橙紫粉红绿)* 都长啥样:
```regex
<div class="css-em857x"><a title="(.*?) profile" href="\/profile\/\d{6,8}">(.*?)<\/a><\/div><\/h4>(.*?)title="(.*?)"(.*?)<\/span><\/div><div class="MuiBox-root css-15ro776"><span aria-hidden="true" title="China" (.*?)1 shared interest: Languages & Cultures<\/p><\/div><div class=
```
写了段用 lxml 库的 xpath 功能抽取结果的 Python 代码:
*( V 站排版原因,行首加了全角空格,记得删除)*
```python
import lxml
html = lxml.html.parse(r'C:\Users\dengz\Downloads\out8.txt')
for node in html.xpath(
'//div[@role="listitem" and '
'.//div[@class="MuiBox-root css-k008qs"]/*[2] and '
'.//p[contains(text(), "1 shared interest")]]'):
n1 = node.xpath('.//a[text()]')[0]
n2 = node.xpath('.//div[@class="MuiBox-root css-15ro776"][2]/span')[0]
print([n1.get('href'), n1.text, n2.get('title')])
```