我想在Perl中编写一个正则表达式,它将删除字符串中最后一个逗号后的所有内容。我知道最后一个逗号之后的子字符串是一个数字或其他一些子字符串,因此没有逗号。
示例:some\string,/doesnt-really.metter,5
。
我希望正则表达式删除最后一个逗号和5
,以便输出为:some\string,/doesnt-really.metter
我不允许仅使用正则表达式使用任何其他模块。那么我应该使用哪种正则表达式?
另一个例子:
string_with,,,,,_no_point,some_string => string_with,,,,,_no_point
答案 0 :(得分:5)
如果逗号后跟一个或多个数字,则可以使用:s/,\d+$//
。更一般地说,使用s/,[^,]*$//
(匹配逗号后跟零个或多个非逗号字符,后跟字符串结尾)。
答案 1 :(得分:-1)
此正则表达式捕获最后const array1 = [['1', 'Tom'], ['2', 'Rob']];
class TempObject {
constructor(public id: string,
public name: string,
public city: string = '') {
}
}
const array2 = array1.map((val, idx) => new TempObject(val[0], val[1]));
console.log(JSON.stringify(array2));
之前的所有内容。
,
答案 2 :(得分:-1)
perl -n -e 'chomp; s/(.+,)/$1/g; print "$_\n";' inputfile.txt
直接在终端上运行此命令,正则表达式只选择最后一个逗号之前的所有文本。