REGEX - 获取内文

REGEX - get innertext

请帮我解决这个问题。 我坚持这个代码

我的内容:

<a href="/path/1232432432">Get Me</a>
<a href="/path/7845454354"><img src="imagelink.png" /></a>
<a href="#">Other link</a>

我要获取内文"Get Me"

我的正则表达式:/(?<=\/path\/)(?!.*img).*?(?=<\/a>)/g

我的结果:

1232432432">Get Me

我需要例外来获取项目,例如在“/路径/...”之后删除数字值

任何帮助将不胜感激,谢谢..

使用\K在最后打印时丢弃先前匹配的字符。 \K 将文本匹配到整个正则表达式匹配之外。

\/path\/\d+">\K(?!.*img).*?(?=<\/a>)

DEMO

$re = "~\/path\/\d+\">\K(?!.*img).*?(?=<\/a>)~m";
$str = "<a href=\"/path/1232432432\">Get Me</a>\n<a href=\"/path/7845454354\"><img src=\"imagelink.png\" /></a>\n<a href=\"#\">Other link</a>";
preg_match_all($re, $str, $matches);
print_r($matches);

也许……?

/(?<=\/path\/1232432432">)(?!.*img).*?(?=<\/a>)/g

(?<=\/path\/)(?!.*img)[^"]+">(.*?)(?=<\/a>)

您可以使用群组来使用您自己的 regex.See 演示来捕捉您想要的内容。

https://regex101.com/r/sH8aR8/62

$re = "/(?<=\/path\/)(?!.*img)[^\"]+\">(.*?)(?=<\/a>)/m";
$str = "<a href=\"/path/1232432432\">Get Me</a>\n<a href=\"/path/7845454354\"><img src=\"imagelink.png\" /></a>\n<a href=\"#\">Other link</a>";

preg_match_all($re, $str, $matches);

使用这个:

/<a\s+(.*?)>(.*?)<\/a>/img