我有一个字符串。
'ABCXDEFXABCYXYABC'
我想让它们用一个空格分隔。此字符串中的已知模式是:
ABC
X
DEF
Y
结果字符串应该是
'ABC X DEF X ABC Y X Y ABC'
a = 'ABCXDEFXABCYXYABC'
b = a.gsub(/[^ ]\((ABC|DEF|X|Y)\)[^ ]/,' \1 ')
我的 gsub 正则表达式没有运气。
谢谢你的帮助。
你让它太复杂了:
1.9.3p194 :001 > a = 'ABCXDEFXABCYXYABC'
=> "ABCXDEFXABCYXYABC"
1.9.3p194 :002 > a.gsub(/ABC|DEF|X|Y/, '\0 ').strip
=> "ABC X DEF X ABC Y X Y ABC"
这是一个带有负前瞻的解决方案,这是我认为您首先要实现的目标:
a.gsub(/(ABC|DEF|X|Y)(?!$)/, '\1 ')
=> "ABC X DEF X ABC Y X Y ABC"
“@jonnyGold 我展示的输入和输出完全描述了我的问题”
好吧,
b = 'ABC X DEF X ABC Y X Y ABC'