Regex 匹配后替换字符串

Regex 匹配后替换字符串,regex,string,perl,replace,Regex,String,Perl,Replace,我是perl新手,想知道如何在匹配模式后替换一些文本 例如,我有一个字符串: my $string = 'startDate="2014-06-10"'; $string =~ s/startDate="2014-06-10"/startDate=""\g; 这段代码替换了我想要的,但我希望能够有任何日期,并用空白字符串替换日期。所以我想替换startDate=“之后的任何文本,并在10个字符之后停止替换。最好的方法是什么 谢谢假设您的日期始终为该格式,您可以使用更通用的正则表

我是perl新手,想知道如何在匹配模式后替换一些文本

例如,我有一个字符串:

    my $string = 'startDate="2014-06-10"';
    $string =~ s/startDate="2014-06-10"/startDate=""\g;
这段代码替换了我想要的,但我希望能够有任何日期,并用空白字符串替换日期。所以我想替换
startDate=“
之后的任何文本,并在10个字符之后停止替换。最好的方法是什么


谢谢

假设您的日期始终为该格式,您可以使用更通用的正则表达式替换日期:

my $string = 'startDate="2014-06-10"';
$string =~ s/startDate="\d{4}-\d{1,2}-\d{1,2}"/startDate=""/g;
由于
startDate=”“
保持不变,您只需替换日期本身:

my $string = 'startDate="2014-06-10"';
$string =~ s/\d{4}-\d{1,2}-\d{1,2}//g;

假设日期始终采用该格式,则可以使用更通用的正则表达式替换日期:

my $string = 'startDate="2014-06-10"';
$string =~ s/startDate="\d{4}-\d{1,2}-\d{1,2}"/startDate=""/g;
由于
startDate=”“
保持不变,您只需替换日期本身:

my $string = 'startDate="2014-06-10"';
$string =~ s/\d{4}-\d{1,2}-\d{1,2}//g;
假设perl>5.10:

s/startDate="\K[^"]{10}//g;
替换
开始日期=“
”之后的10个非
字符。使用
\K
表示不需要替换要保留的位:

\K,这使得正则表达式引擎“保留”它匹配的所有内容 在\K之前,并且不将其包含在$&

假设perl>5.10:

s/startDate="\K[^"]{10}//g;
替换
开始日期=“
”之后的10个非
字符。使用
\K
表示不需要替换要保留的位:

\K,这使得正则表达式引擎“保留”它匹配的所有内容 在\K之前,并且不将其包含在$&


非常好。谢谢:)非常好。谢谢:)