Perl 正規表示式順序

發布 科技 2024-06-22
12個回答
  1. 匿名使用者2024-01-29

    為了得到這些分數,我努力工作。

    首先,讓我們解釋一下結果:

    str = '"double-quoted \"string\042"'

    sum = '"double-quoted \"'

    然後解析正規表示式的意圖:

    在最外層的括號內:

    str 的匹配嘗試:" (\" |3 位數字 |除換行符外的所有字元)單個字元”。

    SUM 的匹配嘗試:"(除換行符外的所有字元 |。 " |3 個數字)單字元”。

    必須理解的乙個經驗法則是,如果 perl 找到乙個匹配項,除非你指定它需要繼續匹配,否則它不會繼續。 所以,$str的匹配就是這樣" \"單字“,$sum的匹配簡單來說"除換行符外的所有字元)單個字元”。

    於是$sum很快就找到了匹配物件。 當第二個冒號出現時,匹配項已經匹配。

    為什麼$str能繼續匹配? 因為它必須匹配" \" ",總共 3 個冒號。 這就是區別。

    最重要的一點是使用符號 |這不像你。 《尋找符號》中的珍珠 |一旦最左邊的匹配被匹配,它將不會繼續執行。 所以你的 |其餘的內容根本不起作用......

    當然,就您提供的 $ 值而言,它不會執行,因為存在匹配項。

    打這麼多字很累。 房東的常規表達太複雜了,更累了...... 為什麼不能讓它更簡單?。。

  2. 匿名使用者2024-01-28

    沒什麼好解釋的,因為:

    1.其他人也進行了解釋。

    2.你的常規指令碼本身寫得邏輯不清晰,我不想幫你分析亂七八糟的東西。

    3.如果您有興趣,請親自檢視:

    教程]以 Python 中的 RE 模組為例,教你如何從頭開始編寫相對複雜的正規表示式。

    總之,我認為你應該學習正確的方法來編寫精確和合乎邏輯的程式碼,而不是讓別人幫你分析不清楚的邏輯。

    這裡沒有郵寄位址,請自己用谷歌搜尋標題,可以找到發帖位址)。

  3. 匿名使用者2024-01-27

    對於完整的 perl 語言,將 perl 正規表示式 ([a-z]) 替換為 $1 的過程如下。

    #!/usr/bin/perl

    string = 'q.';

    string =~ s/([a-z])\/$1/g;

    print "$string";

    執行結果 q

  4. 匿名使用者2024-01-26

    例如,您可以使用 join。

    open file, $filename

    or die “can’t open ‘$filename’:

    my $lines = join '', ;

    lines =~ s/^/$filename: /gm;

    或者有乙個迴圈。

    open(a,"file");

    while()

    上面的指令碼只列印出 aaa 和 bbb 之間的行。

    open(a,"file");

    while()

    上面的指令碼列印出從 aaa 到 bbb 的行。

  5. 匿名使用者2024-01-25

    總體而言,您提供的兩個正規表示式都是有問題的。

    首先,您需要的正規表示式可以更改為更簡單的表示式:[ w d]*(w d|\d\w)[\w\d]*

    其次,(?=.*\d)(?

    *[a-za-z])這個公式本身的寫法很有問題,它匹配乙個正規表示式或者後面包含數字或字母的字元,匹配時不包含它,但是這個字元是沒有限制的,前面應該有乙個正規表示式,即使有限制,理論上也不能匹配所有組合, 因為這個方法不包含匹配時?= 帖子內容。

    綜上所述,不妨試試這個......[w\d]*(w\d|\d\w)[\w\d]*

    這考慮到了最極端的條件,並且僅包括前兩個或後兩個字元是乙個字母和乙個數字的情況。

  6. 匿名使用者2024-01-24

    乙個正規表示式的結果很多,沒有固定的答案,比如[a-z a-z]+d$,即輸入框必須由字母和數字組成。

  7. 匿名使用者2024-01-23

    ?=.*表示您可以參加?

    這四個符號。

    這兩個正規表示式並不相同。 第一種是驗證字母和數字的組合,第二種是驗證字母、數字加特殊字元(?)。=.*組合。

    第二種組合更符合現實中的密碼,例如QQ的密碼可以輸入特殊字元。

  8. 匿名使用者2024-01-22

    正規表示式:href="([^"]*)"[^>

    1 匹配鏈結位址,$2 匹配標題。

  9. 匿名使用者2024-01-21

    你要把 (..)*

    更改為 (..)*就是這樣。

  10. 匿名使用者2024-01-20

    !,w 是一串非英文字母或數字,語法與 [ a-za-z0-9 ] 相同。

    s 不是空格,並且 [ n t f] b 的語法與不是數值且受數值限制的字串 d 匹配

  11. 匿名使用者2024-01-19

    $aaa =~ s/*//g

    s a b g 是模式匹配中的一種替換,即內容 a 被內容 b 替換,後面的 g 是全域性的,即全部被替換。

    ab] 是出現的任何乙個括號,是換行符,[n]* 是 0 或更多。

    總結一下:將$aaa中的所有換行符替換為空,即刪除所有換行符。

  12. 匿名使用者2024-01-18

    從所有$aaa中刪除換行符和回車符。

相關回答
6個回答2024-06-22

ASP測試通過。

str="中國。 >>>More

4個回答2024-06-22

>>'(?ab).*d)',s)非貪婪模式,先在左邊找到ab,然後開始0個字元,檢查右邊是否有d,如果不滿足就反向獲取乙個字元,直到右邊的字元d滿足為止; >>>More

5個回答2024-06-22

e 's/:\+s\+/:/' -e 's/ /_/g'

第一次放置每一行"n 連續 : 和 m 後面的空格"替換為 :將此行中剩餘的相似匹配項替換為 其中 n >= 1, m>=1 >>>More

11個回答2024-06-22

我個人認為最好分為兩步,而不是渣合,供您參考。 >>>More

7個回答2024-06-22

d- d- d d:d:d標準日期加時間。 滿意。