【问题标题】:Convert all the character in a string to "*" [closed]将字符串中的所有字符转换为“*”[关闭]
【发布时间】:2013-12-18 06:35:41
【问题描述】:

问题: 我有一个字符串说:"I am a boy"

我需要一个正则表达式,将字符串中的所有字符转换为"*"

提前致谢。

【问题讨论】:

  • 请发布您尝试过的内容。
  • 这里需要什么正则表达式?
  • 我需要使用数据格式字符串替换它...任何想法
  • 是否也应该替换white spaces
  • 你应该在问题中提到这一点。

标签: c# asp.net .net regex


【解决方案1】:

或者你可以不使用正则表达式:

var s = "I am a boy";

var q = new string('*', s.Length);

【讨论】:

  • 这将删除空格。
  • @Alex 你说的杀是什么意思?它将所有字符(空格也是一个字符)替换为*
  • 修正了我的评论。点是OP可能不想要那个。虽然他没有提。所以你的解决方案是有效的,只是不是正则表达式:D
【解决方案2】:

不是正则表达式,但是怎么样;

String input = "I am a boy";
String result = new String('*', input.Length);

【讨论】:

    【解决方案3】:

    既然每个人都选择了 \w \s,我会建议一个替代方案。

    var r = new Regex("[A-Za-z0-9]");
    var s = r.Replace("I am a boy", "*");
    

    这与建议的其他正则表达式的工作方式类似,但如果您想省略某些字符或其他内容,则可以提供更多控制权。

    【讨论】:

      【解决方案4】:

      如果要替换包括空格在内的每个字符,可以使用以下命令。点 . 将匹配任何字符 (except newline)。

      string input  = "I am a boy";
      string output = Regex.Replace(input, ".", "*");
      // => "**********"
      

      如果您想避免替换空格,可以使用匹配任何非空格字符的\S

      string input  = "I am a boy";
      string output = Regex.Replace(input, "\\S", "*");
      // => "* ** * ***"
      

      【讨论】:

        【解决方案5】:

        使用Regex class 和匹配所有空格和单词字符的正则表达式(双关语)。

        var s = "I am a boy";
        
        var regex = new Regex("[\\w\\s]");
        
        var q = regex.Replace(s,"*");
        

        【讨论】:

          【解决方案6】:

          试试这个正则表达式

          Regex.Replace("I AM A BOY", "[\w\\s]", "*")
          

          它会给你像* ** * ***这样的OP

          【讨论】:

          • 用Vb试试这个然后说
          • 这个问题是用c#和.net标记的,我不懂VB。但是在快速谷歌搜索之后,我承认这个正则表达式可能会在 VB 中为您提供此输出。但是您仍然从另一个答案中复制并且 \\s 部分在这里不起作用(我猜您不知道它应该做什么),因为如果它会起作用,它将取代空格。并且另外替换反斜杠和“s”字符没有意义。
          【解决方案7】:

          编辑:

          假设 OP 不希望将 white spaces 替换为 *

          1) 这会起作用:[a-zA-z0-9]

          var str = "I am a boy";
          var regex = new Regex(@"[a-zA-z0-9]");
          var result = regex.Replace(str,"*");
          

          输出:* ** * *** Regex Demo

          2) 也用于替换空格:[\\w\\s]

          var str = "I am a boy";
          var regex = new Regex(@"[\w\s]");
          var result = regex.Replace(str,"*");
          

          输出:********** Regex Demo

          var str = "I am a boy";
          var result = new String('*', str.Length);
          

          【讨论】:

          • @stema 编辑了我的答案。
          猜你喜欢
          • 2018-05-02
          • 2018-05-28
          • 2023-03-07
          • 2014-03-15
          • 2016-06-23
          • 2013-09-17
          • 2021-02-17
          • 1970-01-01
          相关资源
          最近更新 更多