php - 正则表达式在字符串中查找标签 - 不采用初始标签符号

标签 php regex

我正尝试在 PHP 中执行此操作,我只是想知道,因为我对 Regex 不是很好。

我试图在一个字符串中找到所有主题标签,并将它们包装在一个指向 Twitter 的链接中。为此,我需要主题标签的内容,不带符号。

我想选择 #hashtag - 没有前面的 # => 只是为了返回 hashtag

我想在一行中完成,但我正在做一个 preg_replace,然后是一个字符串替换,如下所示:

$string = preg_replace('/\B#([a-z0-9_-]+)/i', '<a 
href="https://twitter.com/hashtag/$0" target="_blank">$0</a> ', $string);
    $string = str_replace('https://twitter.com/hashtag/#', 'https://twitter.com/hashtag/', $string);

欢迎任何指导!

最佳答案

我正在使用正则表达式测试器并找到了答案。

preg_replace 返回两个值,一个 $0 带有 #hashtag 值,一个 $1 带有 hashtag 值 - 不带 # 符号。

在这里测试(选择 preg_replace):http://www.phpliveregex.com/p/kOn

我不确定这可能与正则表达式本身有关。希望这对其他人也有帮助。

我的一个类轮是:

$string = preg_replace('/\B#([a-z0-9_-]+)/i', '<a href="https://twitter.com/hashtag/$1" target="_blank">$0</a> ', $string);

编辑:我现在明白了。方括号周围添加的括号 ( ) 有效地返回了 $1 变量。否则整个模式是 $0

关于php - 正则表达式在字符串中查找标签 - 不采用初始标签符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45259988/

相关文章:

php - 替代 MySQL 的 UUID Version 1 函数?

php - 一定时间后退出

PHP:上传、下载 .pdf 文件而不使用上传文件的表,文件会损坏。

python - 将句子 include some text 替换为 Python 正则表达式

java - 如何使用 JAVA 正则表达式提取属性值

javascript - 如何检查以一个字母开头然后是 4 位数字的字符串

php - 具有多个 GROUP BY 的 MySQL 查询 - 如何在 HTML 表中将一组设为列标题,一组设为行标题?

c# - 自动在 SQL 中构建 REGEX

java - 如何使用 Java 将 bash 脚本分解为最小的工作 block

php - ZipArchives 存储绝对路径