正则表达式可选子字符串

时间:2018-07-25 13:52:35

标签: regex pcre

在以下方面我很难获得正确的正则表达式

我想要的是:三场比赛(约翰·多伊,简·多伊)

问题出在可选的锚标记上,结果可能为空。

要搜索的字符串:

<td class="character">
  <a href=""> John Doe </a>

</td>
<td class="character">

</td>
<td class="character">
  Jane Doe 

</td>

到目前为止,我的正则表达式:     @<td class="character">.*?(?:<a.*?>)?(.*?)(?:</a>)?.*?</td>@gms

链接到regex101 https://regex101.com/r/9NRhjI/1

我知道您不应该使用正则表达式来解析xml / html,但是由于我仅使用它来挖掘html的一小部分,所以应该可以,对吧?

1 个答案:

答案 0 :(得分:0)

您可以使用以下简单的正则表达式:

@<td[^>]+>\s+(?:<a[^>]+>)?\s+([^<]+?)\s+(?:</a>)?\s+</td>@gms

DEMO