PHP用文字,标点符号,标签,提及,表情符号标记推文

时间:2014-08-08 15:12:38

标签: php string tokenize tweets preg-split

我想将推文标记化。您可能知道,推文通常有非正式形式,如下所示:

This is a common Tweet #format where @mentions and.errors!!!!like this:-))))) might #appear❤ ❤☺❤#ThisIsAHashtag!?!

你也可能有UNICODE格式的表情符号(心,微笑等)。 我正在使用preg_split进行标记化。所需的输出是:

This
is
a
common
Tweet
#format
where
@mentions
and
.
errors
!!!!
like
this
:-)))))
might
#appear
❤
❤
☺
❤
#ThisIsAHashtag
!?!

到目前为止我实施的当前preg_split是:

preg_split('/(?<=\s)|(?<=\w)(?=[.,:;!?(){}-])|(?<=[.,!()?\x{201C}])(?=[^ ])/u', $tweet);

任何帮助都表示赞赏。

1 个答案:

答案 0 :(得分:4)

您可以将此模式与preg_match_all

一起使用
~[#@]?\w+|\pP+|\S~u

online demo

注意:如果您需要对其他类型的字符进行分组,则可以轻松扩展此模式。货币示例:

~[#@]?\w+|\pP+|\p{Sc}+|\S~u