[英]Regex searching and adding characters
我正在嘗試使用正則表達式將$添加到字符串中單詞的開頭,例如:
Answer = partOne + partTwo
變
$Answer = $partOne + $partTwo
我正在使用/ [az]/
來定位它們,但不確定我要用它替換什么。
反正有沒有用正則表達式來做,還是我想只是把我的字符串拆分並放入$?
我正在使用perl。
您可以匹配單詞邊界\\b
,然后匹配單詞類\\w
my $s = 'Answer = partOne + partTwo';
$s =~ s|\b (?= \w)|\$|xg;
print $s;
產量
$Answer = $partOne + $partTwo
您可以使用前瞻來僅匹配空格或行錨的開頭,后跟一個字母。 用$
符號替換匹配的空格字符或起始錨。
use strict;
use warnings;
while(my $line = <DATA>) {
$line =~ s/(^|\s)(?=[A-Za-z])/$1\$/g;
print $line;
}
__DATA__
Answer = partOne + partTwo
輸出:
$Answer = $partOne + $partTwo
Perl的正則表達式有一個字字符類\\w
,它正是用於此類事情。 它匹配大寫和小寫字母,十進制數字和下划線_
。
因此,如果在一個或多個這樣的字符的所有出現位置加上一個美元,則它將滿足您的要求。 看起來像這樣
use strict;
use warnings;
my $str = 'Answer = partOne + partTwo';
$str =~ s/(\w+)/\$$1/g;
print $str, "\n";
產量
$Answer = $partOne + $partTwo
但是請注意 ,如果您正在處理的文本是一種編程語言,那么這也將以您可能不希望的方式處理所有注釋和字符串文字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.