我正在使用Rails5。我正在尝试在正则表达式上进行拆分,但是它似乎在拆分后切断了该项目的第一个字符。我有
2.4.0 :044 > tokens = ["12.BILL R. PRESTON"]
=> ["12.BILL R. PRESTON"]
2.4.0 :045 > tokens = tokens.flat_map { |token| token =~ /\d\.[a-z]/i ? token.split(/\d\.[a-z]/i) : token }
=> ["1", "ILL R. PRESTON"]
我希望结果是
["1", "BILL R. PRESTON"]
但“ B”已被删除。如何调整拆分表达式?
使用前瞻性, (?=[a-z])
以便B
在拆分中不消耗:
tokens.flat_map { |token| token =~ /\d\.[a-z]/i ? token.split(/\d\.(?=[a-z])/i) : token }
=> ["1", "BILL R. PRESTON"]
如果要同时保留2
和和B
,则可以在后面添加一个外观(?<=\d)
:
tokens.flat_map { |token| token =~ /\d\.[a-z]/i ? token.split(/(?<=\d)\.(?=[a-z])/i) : token }
=> ["12", "BILL R. PRESTON"]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句