我有一个如下所示的字符串
**102-Gracecroft-Dr_Havre-de-Grace_MD_21078_M60846-99581**
我想删除以M开头的最后一部分和将是动态值的数字。所以结果字符串应该像
"**102-Gracecroft-Dr_Havre-de-Grace_MD**"
如何使用正则表达式实现它。
我尝试了[/.*(?=[/d+]_M[\d-]+)/]
但它不起作用。有什么想法吗?
答案 0 :(得分:4)
▶ 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**"