【发布时间】:2017-07-15 23:56:50
【问题描述】:
在 Ruby(使用 RoR 5.0.1)中,我想获取文本块中数字“2”的索引
"\n2 hel2 lo"
但是,我只想要两者的索引,前提是它前面有空格或行首,后面有空格。所以我掀起了这个小正则表达式
2.4.0 :007 > regex = /([[:space:]]|^)2([[:space:]]|\.|\))/
=> /([[:space:]]|^)2([[:space:]]|\.|\))/
2.4.0 :008 > text_content = "\n2 hel2 lo"
=> "\n2 hel2 lo"
2.4.0 :009 > text_content.index(regex)
=> 0
但显然这个正则表达式返回零,因为这是正则表达式第一次出现的地方。我想要一个返回“1”的表达式,因为 1 是“2”在正则表达式中出现的位置的索引。我该怎么做?
【问题讨论】:
-
好吧,试试ideone.com/vwVGtA
-
text_content.index(/(?<=[\n\s])\d\s/)可能没问题。 -
@sagarpandya82,如果我想匹配行首或数字前的空格怎么办?我尝试了 /(?
-
@Wiktor,应该先尝试过你的建议 -- /(?
标签: ruby regex ruby-on-rails-5