如何匹配php中的正则表达式中的井号(#)符号(用于主题标签)

J-R*_*Rou 10 php regex

很简单,我需要#使用正则表达式匹配符号.我正在研究一个标签检测器.

我试过在谷歌搜索和堆栈溢出.一个相关的帖子在这里,但由于他想从字符串中删除#符号,他没有使用正则表达式.

我已经尝试了正则表达式/\b\#\w\w+/,并且/\b#\w\w+/它们不起作用,如果我删除它#,它会检测到该单词.

Nie*_*sol 10

#在正则表达式中没有任何特殊含义,除非您将其用作分隔符.所以,直接说它应该工作.

注意,\b检测单词边界,并且在#abc单词边界之后是#和之前abc.因此,你需要使用\b是多余的,你只需要#\w\w+.


web*_*ave 6

你不需要逃避它(它可能\b就是把它扔掉):

if (preg_match('/^\w+#(\w+)/', 'abc#def', $matches)) {
    print_r($matches);
}

/* output of $matches:
Array
(
    [0] => abc#def
    [1] => def
)
*/
Run Code Online (Sandbox Code Playgroud)

  • 但你回答了我的问题. (6认同)
  • 我希望它检测#abcdef,而不是asdasd#this。 (2认同)