-
為了得到這些分數,我努力工作。
首先,讓我們解釋一下結果:
str = '"double-quoted \"string\042"'
sum = '"double-quoted \"'
然後解析正規表示式的意圖:
在最外層的括號內:
str 的匹配嘗試:" (\" |3 位數字 |除換行符外的所有字元)單個字元”。
SUM 的匹配嘗試:"(除換行符外的所有字元 |。 " |3 個數字)單字元”。
必須理解的乙個經驗法則是,如果 perl 找到乙個匹配項,除非你指定它需要繼續匹配,否則它不會繼續。 所以,$str的匹配就是這樣" \"單字“,$sum的匹配簡單來說"除換行符外的所有字元)單個字元”。
於是$sum很快就找到了匹配物件。 當第二個冒號出現時,匹配項已經匹配。
為什麼$str能繼續匹配? 因為它必須匹配" \" ",總共 3 個冒號。 這就是區別。
最重要的一點是使用符號 |這不像你。 《尋找符號》中的珍珠 |一旦最左邊的匹配被匹配,它將不會繼續執行。 所以你的 |其餘的內容根本不起作用......
當然,就您提供的 $ 值而言,它不會執行,因為存在匹配項。
打這麼多字很累。 房東的常規表達太複雜了,更累了...... 為什麼不能讓它更簡單?。。
-
沒什麼好解釋的,因為:
1.其他人也進行了解釋。
2.你的常規指令碼本身寫得邏輯不清晰,我不想幫你分析亂七八糟的東西。
3.如果您有興趣,請親自檢視:
教程]以 Python 中的 RE 模組為例,教你如何從頭開始編寫相對複雜的正規表示式。
總之,我認為你應該學習正確的方法來編寫精確和合乎邏輯的程式碼,而不是讓別人幫你分析不清楚的邏輯。
這裡沒有郵寄位址,請自己用谷歌搜尋標題,可以找到發帖位址)。
-
對於完整的 perl 語言,將 perl 正規表示式 ([a-z]) 替換為 $1 的過程如下。
#!/usr/bin/perl
string = 'q.';
string =~ s/([a-z])\/$1/g;
print "$string";
執行結果 q
-
例如,您可以使用 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 的行。
-
總體而言,您提供的兩個正規表示式都是有問題的。
首先,您需要的正規表示式可以更改為更簡單的表示式:[ w d]*(w d|\d\w)[\w\d]*
其次,(?=.*\d)(?
*[a-za-z])這個公式本身的寫法很有問題,它匹配乙個正規表示式或者後面包含數字或字母的字元,匹配時不包含它,但是這個字元是沒有限制的,前面應該有乙個正規表示式,即使有限制,理論上也不能匹配所有組合, 因為這個方法不包含匹配時?= 帖子內容。
綜上所述,不妨試試這個......[w\d]*(w\d|\d\w)[\w\d]*
這考慮到了最極端的條件,並且僅包括前兩個或後兩個字元是乙個字母和乙個數字的情況。
-
乙個正規表示式的結果很多,沒有固定的答案,比如[a-z a-z]+d$,即輸入框必須由字母和數字組成。
-
?=.*表示您可以參加?
這四個符號。
這兩個正規表示式並不相同。 第一種是驗證字母和數字的組合,第二種是驗證字母、數字加特殊字元(?)。=.*組合。
第二種組合更符合現實中的密碼,例如QQ的密碼可以輸入特殊字元。
-
正規表示式:href="([^"]*)"[^>
1 匹配鏈結位址,$2 匹配標題。
-
你要把 (..)*
更改為 (..)*就是這樣。
-
!,w 是一串非英文字母或數字,語法與 [ a-za-z0-9 ] 相同。
s 不是空格,並且 [ n t f] b 的語法與不是數值且受數值限制的字串 d 匹配
-
$aaa =~ s/*//g
s a b g 是模式匹配中的一種替換,即內容 a 被內容 b 替換,後面的 g 是全域性的,即全部被替換。
ab] 是出現的任何乙個括號,是換行符,[n]* 是 0 或更多。
總結一下:將$aaa中的所有換行符替換為空,即刪除所有換行符。
-
從所有$aaa中刪除換行符和回車符。
>>'(?ab).*d)',s)非貪婪模式,先在左邊找到ab,然後開始0個字元,檢查右邊是否有d,如果不滿足就反向獲取乙個字元,直到右邊的字元d滿足為止; >>>More
e 's/:\+s\+/:/' -e 's/ /_/g'
第一次放置每一行"n 連續 : 和 m 後面的空格"替換為 :將此行中剩餘的相似匹配項替換為 其中 n >= 1, m>=1 >>>More