我很好奇,除了使用正则表达式(主要在 Ruby 中)之外,是否有更快/更好的方法来解析字符串中的主题标签?
编辑
例如,我想解析字符串This is a #hashtag, and this is #another one!
并获取单词#hashtag
和#another
. 我正在使用#\S+
我的正则表达式。
我很好奇,除了使用正则表达式(主要在 Ruby 中)之外,是否有更快/更好的方法来解析字符串中的主题标签?
编辑
例如,我想解析字符串This is a #hashtag, and this is #another one!
并获取单词#hashtag
和#another
. 我正在使用#\S+
我的正则表达式。
你没有显示任何代码(你应该有)所以我们猜测你是如何使用你的正则表达式的。
#\S+
与您需要的模式一样好,但scan
可能是检索字符串中所有出现的最佳方式。
'This is a #hashtag, and this is #another one!'.scan(/#\S+/)
=> ["#hashtag,", "#another"]
如果你不想解析逗号,它应该是 /\B#\w+/
是的我同意。/\B#\w+/
更有意义。
嗯,想法……
s.split('#')
,然后也许只将正则表达式应用于实际的主题标签
s.split('#').drop(1).map { |x| x[/\w+/] }
——它可能更快也可能不会更快,但它显然更丑