簡體   English   中英

正則表達式搜索和添加字符

[英]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
(\w+)

您可以使用this.Replace by \\$$1

參見演示。

http://regex101.com/r/lS5tT3/40

您可以使用前瞻來僅匹配空格或行錨的開頭,后跟一個字母。 $符號替換匹配的空格字符或起始錨。

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.

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