Ruby 正则表达式匹配双胡子但不匹配三胡子
Ruby regex to match double mustache but not triple mustache
我在 rails 应用程序的 ruby 中使用小胡子 gem。给定一个模板,我想用三胡子替换模板中的所有双胡子,并且当它是三胡子时不替换。原来的模板不会有单胡子的,所以不想担心单胡子。
例如:
temp = "You have just won {{value}} {{{currency}}}!"
应转换为
temp = "You have just won {{{value}}} {{{currency}}}!"
这可以通过否定前瞻来完成。
\{\{[^}]+\}\}(?!\})
这将匹配由 2 个胡须包围但后面没有第三个胡须的子字符串。
然后可以在火柴上加上额外的胡须。
temp = "You have just won {{value}} {{{currency}}}!"
temp.gsub!(/\{\{[^}]+\}\}(?!\})/, '{\&}')
puts temp
我在 rails 应用程序的 ruby 中使用小胡子 gem。给定一个模板,我想用三胡子替换模板中的所有双胡子,并且当它是三胡子时不替换。原来的模板不会有单胡子的,所以不想担心单胡子。
例如:
temp = "You have just won {{value}} {{{currency}}}!"
应转换为
temp = "You have just won {{{value}}} {{{currency}}}!"
这可以通过否定前瞻来完成。
\{\{[^}]+\}\}(?!\})
这将匹配由 2 个胡须包围但后面没有第三个胡须的子字符串。
然后可以在火柴上加上额外的胡须。
temp = "You have just won {{value}} {{{currency}}}!"
temp.gsub!(/\{\{[^}]+\}\}(?!\})/, '{\&}')
puts temp