正则表达式:如何删除可选后缀

时间:2014-12-10 08:44:35

标签: regex

示例:

kids-and-babies
kids-girls-1224
beauty
dresses-281
christmas-gifts-for-him-3130

目标产出将是:

kids-and-babies
kids-girls
beauty
dresses
christmas-gifts-for-him

我需要删除尾随数字和短划线(如果存在)。如果存在的话我会删除那个后缀,但后来我被困在后面的短划线上。

3 个答案:

答案 0 :(得分:4)

-\d+$

尝试使用empty string替换。

参见演示。

https://regex101.com/r/nL5yL3/7

答案 1 :(得分:1)

例如,在.NET C#

Regex.Replace(input, "-\d+", "");
  • 第一个参数是输入字符串
  • 第二个是正则表达式的模式
  • 最后一个是用于替换匹配的输入中的子串的字符串 图案。在你的情况下,一个空字符串。

答案 2 :(得分:0)

in perl:

perl -pe 's/-[\d]+$//' your_file

测试:

> cat temp
kids-and-babies
kids-girls-1224
beauty
dresses-281
christmas-gifts-for-him-3130
> perl -pe 's/-[\d]+$//' temp
kids-and-babies
kids-girls
beauty
dresses
christmas-gifts-for-him
>