这里有这样一个问题,我们会遇到这样的情况:
<td>(1)(<a href="(2)">(3)</ a>)(4)</ td>
这里的2,3位置决定的a标签可能存在,而1,4的位置可能由内容也可能没有内容,能不能用一个正则表达式让不管a标签存在与否都匹配出1,4位置的内容呢
比如
<td><a href=""></a>this is not empty</td>
<td>this is not empty<a href=""></a></td>
<td>this is not empty><a href=""></a>this is not empty</td>
这里有一个例子
<td>(.+?)(<a href="(.+?)>(.+?)</a>)?(.+?)</td>
但是这显然是不能满足我们的需求的,能找到正确的方案吗?
하하, PHP라면 쉬울 텐데요. 태그를 직접 필터링하면 완료됩니다. 그러나 PY
는 테이블에서 텍스트를 추출하여 의미하는 바에 따라 다릅니다. .
그런 다음
<td>(.*?)(<.+?>)*(.*?)</td>
하거나 단계별로 수행할 수 있으며 먼저
<td>(.+?)</td>
내용을 꺼냅니다. 그런 다음<.+?>
을 모두 아무것도 없는 것으로 바꾸세요.또는. . 정규 표현식을 사용하세요
<td>(.+?)(<a href="(.*?)>(.*?)</a>)?(.+?)</td>
+
은 최소 1개의 일치 항목을 나타내고*
은 0개 이상의 일치 항목을 나타냅니다.