我有一个字符串
#this is a #new day at #lf_technology and is #awes0me #Nepal #hattiban peace
使用(#[a-zA-Z0-9_]+)
正则表达式,我可以提取主题标签#this, #new, #lf_technology, #awes0me, #Nepal, #hattiban
我需要一个reg ex来提取is a, day at, and is, peace
以下是我用来测试http://rubular.com/r/6i9HJUVFFa
的内容答案 0 :(得分:3)
你可以简单地寻找
/((^| )[a-zA-Z0-9_ ]+)/
http://rubular.com/r/ypEsQY1lhM
除了#
和_
之外的每个字符都是:
/((^| )[^#_]+)/
http://rubular.com/r/9GhP87HFzn
如下面的评论所示,这将产生带有尾随空格的结果,因此要正确使用它,您需要strip
结果:
s.scan(/( [a-zA-Z0-9_ ]+)/).flatten.map(&:strip)
# => ["is a", "day at", "and is", "peace"]
答案 1 :(得分:1)
答案 2 :(得分:0)
你可以试试这个:
(?<=\s)\w[^#]*(?!#)
演示:http://regex101.com/r/sI6uE2
=> irb
=> s = "#this is a #new day at #lf_technology and is #awes0me #Nepal #hattiban peace"
=> s.scan(/(?<=\s)\w[^#]*(?!#)/)
=> ["is a", "day at", "and is", "peace"]