次のようなパターンの文字列があります
1. ABC No 5
2. PQR - XYZ
3. ABC (PQR)
画面の最初の数字とピリオドのみを削除し、画面の残りの部分をそのまま維持する正規表現を誰かが指定できますか?
1.
から削除1. ABC No 5
2.
から削除2. PQR - XYZ
等
次のようなパターンの文字列があります
1. ABC No 5
2. PQR - XYZ
3. ABC (PQR)
画面の最初の数字とピリオドのみを削除し、画面の残りの部分をそのまま維持する正規表現を誰かが指定できますか?
1.
から削除1. ABC No 5
2.
から削除2. PQR - XYZ
等
動作するはずの置換式を次に示します。
s/^\d+\.//
使用している言語については言及していないため、言語/API が正規表現の検索と置換をどのように公開するかによって実装が異なります。たとえば、一度に 1 つの入力行を処理している場合、PHP では次のようにすることができます。
$myVar = preg_replace('/^\d+\./', '', $myVar);
Javaでは、これを行うことができます:
myVar = myVar.replaceFirst("^\\d+\\.", "");
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)
パールで
$cadena ="1111. ABC No 5";
$cadena =~ s/^[\d\.]+//;
print $cadena;
パール:
while(<>) {
print $_ unless /[^-0-9]/
}