Regex 用于在两个单词和非字母数字之间插入单词的正则表达式代码
假设我有一个由两个单词和一些标点/数字组成的句子 比如说 单词1[一些标点符号/数字]单词2 我想在标点符号前插入单词3。 因此,输出将是 单词1单词3[一些标点符号/数字]单词2 什么是正确的正则表达式代码来实现这一点?最好用Perl编写。Regex 用于在两个单词和非字母数字之间插入单词的正则表达式代码,regex,perl,Regex,Perl,假设我有一个由两个单词和一些标点/数字组成的句子 比如说 单词1[一些标点符号/数字]单词2 我想在标点符号前插入单词3。 因此,输出将是 单词1单词3[一些标点符号/数字]单词2 什么是正确的正则表达式代码来实现这一点?最好用Perl编写。(?如何: (?<=\s)(\p{P}|\d+)(?=\s) use strict; use warnings; my $string = 'word1 , word2'; my $re = qr/(\w+) ([\p{P}\d])/; $stri
(?如何:
(?<=\s)(\p{P}|\d+)(?=\s)
use strict;
use warnings;
my $string = 'word1 , word2';
my $re = qr/(\w+) ([\p{P}\d])/;
$string =~ s/$re/$1 word3 $2/;
print $string,"\n";
输出:
word1 word3 , word2
编辑:
如果标点符号是可选的,请使用以下选项:
my $re = qr/(\w+) ([\p{P}\d]?)/;
# here __^
你知道我如何直接将其应用于Perl吗?我不太擅长正则表达式,尤其是反向引用regex@IllSc`$re='/(?我试着使用这个$a=word1 word2
$b=word1 word3 word2
$line=~s/$a/$b/I
但是如果脚本的word1和word2之间有数字/标点符号,它会失败!但是如果word1和word2之间只有空格,它会工作吗?@IllSc:你可以选择标点符号。)请看我的编辑。