我正在尝试返回字符串的前缀,我的相关问题在这里,但我遇到了一个新问题。
How to return the string prefix from regexp
基本上我有一个类似的字符串
23430-BL 23430BZ 23430BK/BL
我尝试删除的扩展是
strip_ext = BK/BL|BZ|BL
我用来获取不带扩展名的字符串的正则表达式是
prefix = sample_data[/(.*[^-])-?(?:#{strip_ext})/,1]
返回
23430 23430 23430-BK
理论上,我知道正则表达式会找到 BL 匹配,并且出于某种原因选择它作为 BK/BL 的匹配。但是有没有办法让正则表达式找到 BK/BL 而不是 BL?
不幸的是,我要删除的部分之前并不总是有破折号。
我添加了原始的 strip_ext 列表作为示例,并认为这样会更容易理解。实际的 strip_ext 列表如下所示,并根据提供的示例数据进行更改,因此不幸的是,它并不像下面 Mu 的答案那么简单。
AM/DB|AM/BN|RD/BK|PR/WT|YP/BN|YP/CH|YP/DB|PK/BN|PK/CH|PK/DB|SF/BN|SF/CH|SF/DB|AM/CH|BN/CH|BN/DB|CH/BN|CH/DB|DB/BN|DB/CH|BN/BN|CH/CH|MR/BN|MR/CH|MR/DB|DB/DB|AM/AB|DIC/BN|DIC/CH|DIC/DB|BN|DB|WT|BN/WT|BK|WT/BN|BK/BN|BK/DB|BL/BN|BL/DB|BK/CH|BL/CH|AM|CH|FR|SB|AM/BK|AM/WT|PT/CH|BG/CH|BG/DB|MF/CH|MF/DB|YR/CH|YR/DB|WT/DB|pt/bn
最佳答案
关于ruby - 使用正则表达式返回字符串的前缀,其中剥离的字符串有时包含 '/',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7439296/