【问题标题】: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ö 应替换为 *****。

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

【问题讨论】:

    标签: perl5.8


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

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