我很好奇,除了使用正则表达式(主要是在Ruby中)之外,是否有更快/更好的方法来解析字符串中的主题标签?
修改
例如,我想解析字符串This is a #hashtag, and this is #another one!
并获取单词#hashtag
和#another
。我正在使用#\S+
作为我的正则表达式。
答案 0 :(得分:6)
您没有显示任何代码(您应该拥有),因此我们猜测您是如何使用正则表达式的。
#\S+
与您需要的模式一样好,但scan
可能是检索字符串中所有匹配项的最佳方法。
'This is a #hashtag, and this is #another one!'.scan(/#\S+/)
=> ["#hashtag,", "#another"]
它应该是/ \ B#\ w + /,如果你不想解析逗号
是的,我同意。 /\B#\w+/
更有意义。
答案 1 :(得分:4)
s.split('#')
,然后可能只将regex应用于实际的标签
s.split('#').drop(1).map { |x| x[/\w+/] }
---它可能会或可能不会更快,但显然更加丑陋