PHP:如何使用preg_match获取此符号?

时间:2013-01-16 00:16:26

标签: php regex preg-match

  

可能重复:
  Regex to conditionally replace Twitter hashtags with hyperlinks

我正试图在符号#

之后得到这个词

所以以下字符串都应该返回stack_overflow

#stack_overflow
hello #stack_overflow
blahblahblah#stack_overflow

模式会是什么样的?

2 个答案:

答案 0 :(得分:3)

\w匹配“字”字符,所以:

'/#\w+/'

\w包括小写和大写字母az,数字和下划线。如果您需要更多,请使用字符集。

然后,如果你把它放在一个组中,你可以捕获它。 Here's a demo.

答案 1 :(得分:0)

试试这段代码:

$content = '#stack_overflow
            hello #stack_overflow
            blahblahblah#stack_overflow';
preg_match_all('/\#(?P<name>[a-z_]+?)/Uim', $content, $matches, PREG_SET_ORDER);

foreach ($matches as $match) {
    var_dump($match['name']);
}

那会让你

string(14) "stack_overflow"
string(14) "stack_overflow"
string(14) "stack_overflow"