正则表达式删除字符串的开头部分

时间:2018-09-05 12:47:35

标签: regex perl

我有不同的字符串,但格式相同,三个单词之间用空格隔开。目的是删除字符串的第一部分。换句话说,删除每个字符串的前导数据。

什么Perl正则表达式可以使我删除前导数据,同时使其余字符串不受影响?

输入

String 1: Apples Peaches Grapes
String 2: Spinach Tomatoes Carrots
String 3: Corn Potatoes Rice

输出

String 1: Peaches Grapes
String 2: Tomatoes Carrots
String 3: Potatoes Rice

Perl

#! /usr/bin/perl

use v5.10.0;
use warnings;

$string1 = "Apples Peaches Grapes";
$string2 = "Spinach Tomatoes Carrots";
$string3 = "Corn Potatoes Rice";

# Apply ReqExp to Delete the First Part of the String
$string1 =~ s/.../; 

say $string1;
say $string2;
say $string3;

1 个答案:

答案 0 :(得分:1)

$string1 =~ s/^\S+\h+//; 
  • ^字符串的开头
  • \S+ 1个或多个非空格字符
  • \h+ 1个或更多水平空间

如果您使用的Perl版本低于v5.10,则可以使用:

$string1 =~ s/^\S+[ \t]+//;