[英]Regex for Hash tag but without a # in href
我試過了
#\\w+
匹配任何以#開頭的字母數字
並替換為:
<a href="/$&" />$&</a>
我想擺脫標簽的href區域中的#,並將其保留為鏈接文本,即在開始和結束標簽之間。 檢查以下示例。
我想要的是
如果句子是:
Lorem ipsum #set amet#美元
然后,我希望輸出為:
Lorem ipsum <a href="/set">#set</a> amet <a href="/dolor">#dolor</a>
我正在使用沒有任何分隔符的preg_replace() 。
我已經擁有的:
preg_replace('/(?<=#)\\w+/', '<a href="/\\\\0" />\\\\0</a>', $comment)
它給了我:
Lorem ipsum #<a href="/set">set</a> amet #<a href="/dolor">dolor</a>
並不是
Lorem ipsum <a href="/set">#set</a> amet <a href="/dolor">#dolor</a>
注意#的位置
使用捕獲組。
更換:
#(\w+)
同
<a href="/$1" />$&</a>
$1
被捕獲的組1替換(單詞部分)
在PHP中:
$replaced = preg_replace('/#(\w+)/', '<a href="/\1" />\0</a>',
$sentence);
$replaced=preg_replace("/\\#([\\w\\d]+)/ui",'<a href="/\\1">\\0</a>',$text);
我建議您使用此。 在falsetru的答案上,他正在使用\\ w。 這意味着它將僅匹配英語字母數字字符。 如果使用\\ w \\ d,它將匹配所有以#開頭的utf-8字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.