【发布时间】:2013-12-27 07:33:55
【问题描述】:
我有这个字符串:
$text = "What's your #name ?"
我有这段代码捕获“名称”和“039”:
preg_replace("/\B#(\w+)/", "<a href='url'>#$1</a>", $text);
关于如何捕获“名称”而不是“039”的任何想法?
【问题讨论】:
标签: php html regex special-characters
我有这个字符串:
$text = "What's your #name ?"
我有这段代码捕获“名称”和“039”:
preg_replace("/\B#(\w+)/", "<a href='url'>#$1</a>", $text);
关于如何捕获“名称”而不是“039”的任何想法?
【问题讨论】:
标签: php html regex special-characters
使用消极的向后看:
echo preg_replace("/(?<!\S)#(\w+)/", "<a href='url'>#$1</a>", $text);
正则表达式验尸:
(?<!\S) - 否定的后视 - 断言 # 前面没有非空白字符# - 从字面上匹配 # 字符(\w+) - 第一个捕获组【讨论】:
您可以使用[A-Za-z]+ 代替\w+。
【讨论】: