Regex perl正则表达式子字符串
我需要只以regex开头的返回字符串“!”Regex perl正则表达式子字符串,regex,perl,Regex,Perl,我需要只以regex开头的返回字符串“!” 如何返回旁路?以匹配以开头的字符串您需要此模式。^是字符串开头的锚点 $str="!bypass"; 如果你想在之后捕获这些东西,您需要此模式。括号()是一个捕获组。他们告诉Perl抓取他们之间的所有内容并保存它。表示任何字符,+是尽可能多的量词,至少一个。所以+意味着抓住一切 要应用它,请执行以下操作 /^!(.+)/ 要从该模式中获得“旁路”,请使用Perl通过m/操作自动分配的$1匹配变量 $str =~ m/^!(.+)/; 要使之有条件
如何返回旁路?以匹配以
开头的字符串代码>您需要此模式。^
是字符串开头的锚点
$str="!bypass";
如果你想在之后捕获这些东西代码>,您需要此模式。括号()
是一个捕获组。他们告诉Perl抓取他们之间的所有内容并保存它。
表示任何字符,+
是尽可能多的量词,至少一个。所以+
意味着抓住一切
要应用它,请执行以下操作
/^!(.+)/
要从该模式中获得“旁路”
,请使用Perl通过m/
操作自动分配的$1
匹配变量
$str =~ m/^!(.+)/;
要使之有条件,它将是:
print $1; # will print bypass
此处的if
在中,可以省略块和括号。它与下面的内容相同,但是对于单个语句,它更简短、更容易阅读
print $1 if $str =~ m/^!(.+)/;
如果要将$str
永久更改为在开头没有感叹号,则需要使用替换
if ( $str =~ m/^!(.+)/ ) {
print $1;
}
s//
是替换运算符。它在适当的位置更改$str
。原始值包括代码>将丢失 以匹配以开头的字符串代码>您需要此模式。^
是字符串开头的锚点
$str="!bypass";
如果你想在之后捕获这些东西代码>,您需要此模式。括号()
是一个捕获组。他们告诉Perl抓取他们之间的所有内容并保存它。
表示任何字符,+
是尽可能多的量词,至少一个。所以+
意味着抓住一切
要应用它,请执行以下操作
/^!(.+)/
要从该模式中获得“旁路”
,请使用Perl通过m/
操作自动分配的$1
匹配变量
$str =~ m/^!(.+)/;
要使之有条件,它将是:
print $1; # will print bypass
此处的if
在中,可以省略块和括号。它与下面的内容相同,但是对于单个语句,它更简短、更容易阅读
print $1 if $str =~ m/^!(.+)/;
如果要将$str
永久更改为在开头没有感叹号,则需要使用替换
if ( $str =~ m/^!(.+)/ ) {
print $1;
}
s//
是替换运算符。它在适当的位置更改$str
。原始值包括代码>将丢失 使用^\K.+
它是这样工作的:
^代码>-匹配首字母代码>(但这很快就会改变,见下文)
\K
-保留“忘记”到目前为止匹配的内容,并在此处设置匹配的起点(在!
之后)
+
-匹配字符的非空序列
由于\K
,只有最后一部分(+
)实际匹配。使用^\K.+
它是这样工作的:
^代码>-匹配首字母代码>(但这很快就会改变,见下文)
\K
-保留“忘记”到目前为止匹配的内容,并在此处设置匹配的起点(在!
之后)
+
-匹配字符的非空序列
由于\K
,只有最后一部分(+
)是实际匹配的。什么意思?是否要删除字符串开头的感叹号?什么意思?是否要删除字符串开头的感叹号?在实际程序中如何使用与\K
的匹配?它的逻辑是什么?您可以对其进行编程,例如:my$str=“!bypass”;如果($str=~/^!\K.+/){print“Match:$&\n”}或者{print“No Match\n”}当然,匹配的内容在\K之后。您应该将其添加到您的答案中。这是一种更高级的技术,实际上我不知道\K
。在实际的程序中如何使用与\K
的匹配?它的逻辑是什么?您可以对其进行编程,例如:my$str=“!bypass”;如果($str=~/^!\K.+/){print“Match:$&\n”}或者{print“No Match\n”}当然,匹配的内容在\K之后。您应该将其添加到您的答案中。这是一种更先进的技术,实际上我不知道\K
。