如何匹配正则表达式并在匹配结果中间进行替换



如何匹配正则表达式并在匹配结果中间进行替换

错误地址示例:

我的街道地址8-24

我的街道地址8 24(我需要在中间添加短划线,结果应该是8-24(

我的街道地址8-24(不应删除-从"我的街道"(

我的当前代码

address_as_array.each do |row|
aadress_white_space_removed << row.gsub(/s+/, ' ').gsub(/s-/, '-').strip.mb_chars.downcase.to_s
end

您可以使用以下正则表达式:

/(d)s*[-s]s*(d)/

并替换为CCD_ 1。

查看regex演示

详细信息

  • (d)-组1(稍后在字符串替换模式的1替换反向引用的帮助下引用(:任意数字
  • s*-0+空白
  • [-s]-一个连字符或空白
  • s*-0+空白
  • (d)-第2组(稍后在2替换后引用的帮助下引用(:任意数字

在您的代码中,您可以将其用作

aadress_white_space_removed << row.gsub(/s+/, ' ').gsub(/(d)s*[-s]s*(d)/, '1-2').strip.mb_chars.downcase.to_s

相关内容

  • 没有找到相关文章

最新更新