我有一些模式中的字符串,例如
1. ABC No 5
2. PQR - XYZ
3. ABC (PQR)
有人可以指定一个正则表达式,它只会在屏幕开头删除数字和句点,并保持屏幕的其余部分不变吗?
1.
1. ABC No 5
2.
2. PQR - XYZ
等
答案 0 :(得分:2)
这是一个应该有效的替换表达式。
s/^\d+\.//
您没有提到您正在使用的语言,因此实现将根据语言/ API如何暴露正则表达式搜索和替换而有所不同。例如,如果您一次处理一个输入行,则在PHP中,您可以这样做:
$myVar = preg_replace('/^\d+\./', '', $myVar);
在java中你可以这样做:
myVar = myVar.replaceFirst("^\\d+\\.", "");
答案 1 :(得分:0)
Regex
:^[0-9]+\.
^ # Matches the start of the line
[0-9]* # Matches one or more digits
\. # Matches the period (escaped as . matches anything in regex) and the space
使用sed
:
$ cat file
1. ABC No 5
2. PQR - XYZ
3. ABC (PQR)
$ sed -E 's/^[0-9]+\. //' file
ABC No 5
PQR - XYZ
ABC (PQR)
此处不一定需要正则表达式 -
使用cut
:
$ cut -d' ' -f2- file
ABC No 5
PQR - XYZ
ABC (PQR)
使用Awk
:
$ awk -F. '{print $2}' file
ABC No 5
PQR - XYZ
ABC (PQR)
答案 2 :(得分:0)
$cadena ="1111. ABC No 5";
$cadena =~ s/^[\d\.]+//;
print $cadena;
答案 3 :(得分:0)
的Perl:
while(<>) {
print $_ unless /[^-0-9]/
}