簡體   English   中英

用於Hash標簽的正則表達式,但href中沒有#

[英]Regex for Hash tag but without a # in href

我試過了

http://regexr.com?38d9s

#\\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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM