【发布时间】:2018-06-01 23:10:26
【问题描述】:
我想在 Perl 中编写一个正则表达式,它将删除字符串中最后一个逗号之后的所有内容。我知道最后一个逗号后面的子字符串是数字或其他子字符串,所以那里没有逗号。
例如:some\string,/doesnt-really.metter,5。
我希望正则表达式删除最后一个逗号和 5,因此输出将是:some\string,/doesnt-really.metter
我不能只使用正则表达式的任何附加模块。那么我应该使用哪个正则表达式?
另一个例子:
string_with,,,,,_no_point,some_string => string_with,,,,,_no_point
【问题讨论】:
-
匹配
/,[^,]*$/并替换为空字符串。 -
另一种方式:
/.*\K,.*//-- 贪婪匹配所有 (.*),直到 last 出现以下字符(此处为逗号)并删除所有那些匹配项 (\K),匹配一个逗号,然后匹配所有其他 (.*) 并将其删除。