我用perl编程,但我相信这只是一个一般的regexp问题。我有一根绳子……第一个月我要这个... 123456_aa.bb.cc个IOW,我想只替换驻留在int之间的.的示例。
123456_aa.bb.cc
.
9avjhtql1#
您可以将数字前面和后面的所有点替换为空字符串(使用lookahead和lookbehind)。
$str = "12.34.56_aa.bb.cc"; $str =~ s/(?<=[0-9])\.(?=[0-9])//g; print $str;
字符串
wkftcu5l2#
你不需要什么看头或跟屁虫。您可以使用一个简单的捕获组模式,匹配两个数字\d之间的点.。
\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来删除整数之间的点。
(\d)
\.
$1
$2
s///
$1$2
2条答案
按热度按时间9avjhtql1#
您可以将数字前面和后面的所有点替换为空字符串(使用lookahead和lookbehind)。
字符串
wkftcu5l2#
你不需要什么看头或跟屁虫。您可以使用一个简单的捕获组模式,匹配两个数字
\d
之间的点.
。字符串
使用捕获组
(\d)
匹配点两侧的整数。\.
按字面意思匹配点字符。使用
$1
和$2
引用捕获的数字。在s///
运算符的替换部分使用$1$2
来删除整数之间的点。