ruby - 正则表达式在 ruby​​ 中返回修改后的字符串

标签 ruby regex

我有一个像下面这样的字符串

**102-Gracecroft-Dr_Havre-de-Grace_MD_21078_M60846-99581**

我想删除以 M 开头的最后一部分和将成为动态值的数字。所以结果字符串应该是这样的

"**102-Gracecroft-Dr_Havre-de-Grace_MD**"

我如何使用正则表达式实现它。 我尝试使用 [/.*(?=[/d+]_M[\d-]+)/]

但它不起作用。有什么想法吗?

最佳答案

▶ str = "102-Gracecroft-Dr_Havre-de-Grace_MD_21078_M60846-99581"
#⇒ "102-Gracecroft-Dr_Havre-de-Grace_MD_21078_M60846-99581"
▶ str[/.*(?=_M[\d-]+)/]
#⇒ "102-Gracecroft-Dr_Havre-de-Grace_MD_21078"

如果星号确实是真实输入的一部分:

▶ str = "**102-Gracecroft-Dr_Havre-de-Grace_MD_21078_M60846-99581**"
▶ str.gsub /_M[\d-]+(?=\*{2}\z)/, ''
#⇒ "**102-Gracecroft-Dr_Havre-de-Grace_MD_21078**"

关于ruby - 正则表达式在 ruby​​ 中返回修改后的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40608651/

相关文章:

ruby-on-rails - Rails GeoCoder,循环遍历现有数据库和 geocode_by :address, :city, :state

ruby - 将 Sinatra 应用程序打包到单个 JAR 文件中?

ruby - 为什么 ruby​​ 在创建一个类后会创建 3 个对象?

regex - perl 中的 split 函数应该如何工作?

java - 在 "+"符号上拆分 Java 字符串会出现错误

ruby - 为什么我没有成功摆脱这个 Ruby 循环?

mysql - 如何将 GET 参数从自定义日期格式转换为数据库日期格式?

regex - 使用 awk 解析带有空字段、转义引号和逗号的 CSV

IP 地址的 Ruby 正则表达式

正则表达式模数故障?