是否有比使用正则表达式更快的解析主题标签的方法?

时间:2012-12-16 19:52:48

标签: ruby-on-rails ruby regex hashtag

我很好奇,除了使用正则表达式(主要是在Ruby中)之外,是否有更快/更好的方法来解析字符串中的主题标签?

修改
例如,我想解析字符串This is a #hashtag, and this is #another one!并获取单词#hashtag#another。我正在使用#\S+作为我的正则表达式。

2 个答案:

答案 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+/] } ---它可能会或可能不会更快,但显然更加丑陋
  • 您可以编写一个提取主题标签的C扩展名
  • 您可以分析您的程序,看看它是否真的需要针对此案例进行任何优化。