输入文字:Our website is <a href="www.me.com">www.me.com</a>
要求的输出:Our website is <a href="[x]">[x]</a>
规则:任何网址都需要替换为[x]。 URL可能带有http / https或www或只是me.com。解决方案必须不区分大小写
$inputext = "<a href="www.me.com">www.me.com</a>";
$rule ="/(?<!a href=\")(?<!src=\")((http|ftp)+(s)?:\/\/[^<>\s]+)/i";
$replacetext = "[X]";
$outputext = preg_replace($rule, $replacetext, $inputext);
echo($outputext);
谢谢您的建议。
答案 0 :(得分:2)
从不使用正则表达式解析HTML。对于这样的工作使用DOM解析器似乎有点过头了,但是可以保证将来避免出现问题。
$input = 'Our website is <a href="www.me.com">www.me.com</a>';
$replace = "[x]";
$dom = new DomDocument();
$dom->loadHTML($input, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$a = $dom->getElementsByTagName("a")->item(0);
$a->setAttribute("href", $replace);
$a->textContent = $replace;
echo $dom->saveHTML();
答案 1 :(得分:1)
使用 ID_Code Status1 Status2 Date
0 A Done Not 01-23-18
1 A Done Done 01-23-18
2 B Not Not 01-24-18
3 B Not Done 01-24-18
4 C Not Not 01-24-18
5 C Not Not 01-25-18
6 C Done Done 01-25-18
或不使用http/https
网址www
来抓取这个消息怎么样?
www
输出: <?php
$re = '/(https?:\/\/|(www\.)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?)/mi';
$str = 'Our website is <a href="www.me.com">www.me.com</a>';
$subst = '[x]';
$result = preg_replace($re, $subst, $str);
echo $result;