如何在perl中用'*'替换字符串中的所有字符

Posted

技术标签:

【中文标题】如何在perl中用\'*\'替换字符串中的所有字符【英文标题】:How to replace all characters in a string with '*' in perl如何在perl中用'*'替换字符串中的所有字符 【发布时间】:2020-02-28 16:50:47 【问题描述】:

如何获得一个正则表达式来用 * 替换 perl 中字符串中的所有字符?该字符串也有一些 utf-8 或 iso-8859-1 字符。我尝试使用“s/\w/*/g”。但它没有替换 utf-8 或 iso-8859-1 字符。

my $value="hellö";
print "$value\n";
$value =~ s/\w/*/g;
print "after replacing $value\n"; //It prints ****ö.

我希望所有字符都应替换为 *,即 hellö 应替换为 *****。

请注意,应该跳过一些特殊字符,如 -、_、\ 等。

【问题讨论】:

【参考方案1】:

如果你只想跳过几个字符,你总是可以按照

 s/[^, \/\\\-]/*/g;

【讨论】:

【参考方案2】:

要替换所有字符串中的字符? \w 用于匹配单词字符,但仅使用点应匹配所有字符:s/./*/g

【讨论】:

非常感谢。是否有任何选项可以跳过该字符串上不应替换的一些特殊字符?就像 '17/03/2019' 到 **/**/****。 当然,但是一旦您进入“全部替换”之外,它就会变得更加棘手。如果您只想匹配数字,那么 s/[0-9]/*/g 就可以了。 字符串可以包含任何 iso-8859-1 字符。在所有字符中,应跳过逗号(,)、空格()、斜杠(\/)和连字符(-)等特殊字符。 不应该匹配的字符之间的共同主题是什么?我对非美国英语字符集的经验非常有限,但是 perl 支持各种匹配,例如标点符号或特定于语言的属性。参考:perldoc.perl.org/perlrecharclass.html 谢谢,这份文件对我有很大帮助。

以上是关于如何在perl中用'*'替换字符串中的所有字符的主要内容,如果未能解决你的问题,请参考以下文章

如何在字符串 C++ 中用“aaa”替换字符“a”?

如何使用 Perl 进行批量搜索和替换?

如何在 C#.NET 中用空字符替换字符串中的字符

如何在 PHP 中用 UTF-8 支持替换所有非字母字符

如何在 JavaScript 中用“下划线”(“_”)替换 80% 的字符串?

如何在 Emacs 中用换行符替换字符?