[英]perl regex substring
$str="!bypass";
我需要僅以正則表達式“!”開頭的返回字符串。 如何返回旁路?
匹配以!
開頭的字符串 您需要這種模式。 ^
是字符串開頭的錨點。
/^!/
如果您想在之后捕獲東西!
,您需要此模式。 括號()
是捕獲組 。 他們告訴Perl抓住它們之間的所有東西並保留它。 的.
表示任何字符 ,而+
表示盡可能多的量,至少一個 。 所以.+
意味着抓住一切 。
/^!(.+)/
要應用它,請執行此操作。
$str =~ m/^!(.+)/;
要使"bypass"
脫離該模式,請使用Perl通過m//
操作自動分配的$1
匹配變量。
print $1; # will print bypass
要使其成為條件,將是:
print $1 if $str =~ m/^!(.+)/;
if
是后綴表示法 ,可讓您省略塊和括號。 與以下相同,但對於單個語句更短且更易於閱讀。
if ( $str =~ m/^!(.+)/ ) {
print $1;
}
如果要永久性地將$str
更改$str
一開始沒有感嘆號,則需要使用替代符號。
$str =~ s/^!//;
s///
是替換運算符。 它將$str
更改到位。 原始值包括!
會迷路。
使用^!\\K.+
。
它是這樣工作的:
^!
-匹配初始!
(但這很快就會改變,請參閱下文)。 \\K
保留 -“忘記”您到目前為止已匹配的內容,並在此處(在!
)設置匹配的起點。 .+
-匹配非空字符序列。 由於\\K
,只有最后一部分( .+
)實際上被匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.