Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何使用单个正则表达式从字符串中删除具有重复字符的单词?_Regex_Perl - Fatal编程技术网

Regex 如何使用单个正则表达式从字符串中删除具有重复字符的单词?

Regex 如何使用单个正则表达式从字符串中删除具有重复字符的单词?,regex,perl,Regex,Perl,我需要从Perl中的字符串中删除任何包含重复字符的单词。我可以使用/e标志: $string =~ s/(\w+)/keys %{{map {$_,1} split '', $1}} == length $1 ? $1 : ""/ge; 是否可以使用单个正则表达式而不使用/e $string =~ s/\b\w*(\w)\w*\1\w*\b//g; 看起来很奇怪,但无论如何都有效。它检测所有的双字母,将它扩展为包含更多的字母,并在结束之前匹配两端的空白。

我需要从Perl中的字符串中删除任何包含重复字符的单词。我可以使用
/e
标志:

$string =~ s/(\w+)/keys %{{map {$_,1} split '', $1}} == length $1 ? $1 : ""/ge;
是否可以使用单个正则表达式而不使用
/e

$string =~ s/\b\w*(\w)\w*\1\w*\b//g;

看起来很奇怪,但无论如何都有效。

它检测所有的双字母,将它扩展为包含更多的字母,并在结束之前匹配两端的空白。