我有一个像下面这样的字符串
**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/