Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式以删除字符串的前导部分_Regex_Perl - Fatal编程技术网

Regex 正则表达式以删除字符串的前导部分

Regex 正则表达式以删除字符串的前导部分,regex,perl,Regex,Perl,我有不同的字符串,但格式相同,有三个单词用空格隔开。目标是删除字符串的第一部分。换句话说,删除每个字符串的前导数据 什么Perl正则表达式使我能够删除前导数据,同时保持字符串的其余部分不受影响 输入 String 1:苹果桃子葡萄 第二组:菠菜西红柿胡萝卜 串3:玉米土豆米饭 输出 String 1:桃子和葡萄 串2:西红柿胡萝卜 串3:土豆饭 Perl #/usr/bin/perl 使用v5.10.0; 使用警告; $string1=“苹果桃子葡萄”; $string2=“菠菜西红柿胡萝卜

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

什么Perl正则表达式使我能够删除前导数据,同时保持字符串的其余部分不受影响

输入
String 1:苹果桃子葡萄
第二组:菠菜西红柿胡萝卜
串3:玉米土豆米饭
输出
String 1:桃子和葡萄
串2:西红柿胡萝卜
串3:土豆饭
Perl
#/usr/bin/perl
使用v5.10.0;
使用警告;
$string1=“苹果桃子葡萄”;
$string2=“菠菜西红柿胡萝卜”;
$string3=“玉米土豆大米”;
#应用ReqExp删除字符串的第一部分
$string1=~s/../;
比如说$1;
比如说$2;
比如说3美元;
  • ^
    字符串的开头
  • \S+
    1个或多个非空格字符
  • \h+
    1个或多个水平空格
如果使用的Perl版本早于v5.10,则可以使用:

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

试试这个
^.+?(?=\s)
如果你的数据实际上不包含
字符串1:
等等,那么你不应该在你的问题中显示它。为什么不使用一个简单的
$str=~s/^\s+\s+/
$string1 =~ s/^\S+[ \t]+//;