簡體   English   中英

Perl正則表達式子字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM