如何在Java中使用这个PHP正则表达式从字符串中检索哈希标记?
我是一名PHP开发人员,从我开始学习Java到现在只有几个月了。在这里,我在PHP中有一个从字符串中检索哈希标记的函数
{
preg_match_all('/(^|[^a-z0-9_])#([a-z0-9_]+)/i', $text, $matchedHashtags);
$hashtag = '';
if (!empty($matchedHashtags[0])) {
foreach ($matchedHashtags[0] as $match) {
$hashtag .= preg_replace("/[^a-z0-9]+/i", "", $match) . ',';
}
}
return rtrim($hashtag, ',');
}
此函数返回一个新字符串,其中包含用逗号分隔的hashtags。我的问题是,如何在java中实现这个确切的功能?问候
# 1 楼答案
一种选择可能是使用单一模式,而不是先匹配然后替换
然后,您可以将结果连接到字符串中,或者将结果添加到列表中,并使用带有逗号的
String.join
\B
在\b
不匹配的位置进行匹配#\w*[A-Za-z]\w*
匹配#
和至少一个字符a-Za-z(如果您不想根据注释只匹配数字或下划线)Java demoRegex demo
比如说
输出