[英]Substitution regex
我想用$
替換類[A-Za-z0-9_]
之前的所有空白。
$string = "STRING sDir = sDrive";
$string =~ s/\s(?=[A-Za-z0-9_])/ \$/;
它只匹配一次並產生:
STRING $sDir = sDrive;
要多次匹配,請使用/ g標志:
$string = "STRING sDir = sDrive";
$string =~ s/\s(?=[A-Za-z0-9_])/ \$/g;
您可以將g
標志用於正則表達式:
$string = "STRING sDir = sDrive";
$string =~ s/\s(?=[A-Za-z0-9_])/ \$/g;
這樣s///
就可以在您的模式的每次匹配中使用。
Perl的默認行為是執行一次替換。
g
標志告訴它為每次出現執行替換。
如果我認為您的意思是:
s/\s+\b/ \$/g;
這會刪除(所以' a'
-> ' $a'
)之前的所有空格,並且\\ b是(?=(?<=\\W)\\w)
或(?=(<=\\w)\\W_
的斷言; \\ s始終為\\W
,並且[a-zA-Z0-9_]
與\\w
的通用定義匹配,因此它與您的(?=[...])
匹配。
(當然,如果要處理\\w
與[a-zA-Z0-9]
字符集,則必須用\\b
代替斷言。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.