如何使用regexp替换字符串中字符的特定示例?

bprjcwpo  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(99)

我用perl编程,但我相信这只是一个一般的regexp问题。
我有一根绳子……第一个月
我要这个... 123456_aa.bb.cc
IOW,我想只替换驻留在int之间的.的示例。

9avjhtql

9avjhtql1#

您可以将数字前面和后面的所有点替换为空字符串(使用lookahead和lookbehind)。

$str = "12.34.56_aa.bb.cc";

$str =~ s/(?<=[0-9])\.(?=[0-9])//g;

print $str;

字符串

wkftcu5l

wkftcu5l2#

你不需要什么看头或跟屁虫。您可以使用一个简单的捕获组模式,匹配两个数字\d之间的点.

my $input_string = "12.34.56_aa.bb.cc";
$input_string =~ s/(\d)\.(\d)/$1$2/g;
print $input_string; # Output: "123456_aa.bb.cc"

字符串
使用捕获组(\d)匹配点两侧的整数。\.按字面意思匹配点字符。
使用$1$2引用捕获的数字。在s///运算符的替换部分使用$1$2来删除整数之间的点。

相关问题