替换字符串中出现的所有字母数字字符
本文关键字:数字字符 字符串 替换 | 更新日期: 2023-09-27 18:06:23
我试图用正则表达式将字符串中的所有字母数字字符替换为字符"-"。因此,如果输入是"Dune",我应该得到"----"。目前,虽然我只得到一个"-";
string s = "^[a-zA-Z0-9]*$";
Regex rgx = new Regex(s);
string s = "dune";
string result = rgx.Replace(s, "-");
Console.WriteLine(result);
Console.Read();
现在我知道它在寻找字符串"dune"而不是字母"d" "u" "n" "e"。但是我可以找到另一个类。
你的正则表达式太贪婪了,删除*并开始结束字符串匹配。应该是
string s = "[a-zA-Z0-9]";
这将只匹配字符串中任何地方的一个字符,而不是所有字符。您还可以查看任何字母数字
的简写。String s= "'w";
Try
string s = "[a-zA-Z0-9]";
Regex rgx = new Regex(s);
string s = "dune";
string result = rgx.Replace(s, "-");
Console.WriteLine(result);
Console.Read();
为什么你有一个字符串 s
为你的正则表达式和另一个字符串 s
为你的字符串?我将修改它以消除这里的混淆/错误。
也要替换每个字母数字字符,您需要删除字符串的开头/字符串的结尾锚^ $
和*
量词含义(0
或更多次,匹配最多可能的数量)
Regex rgx = new Regex("[a-zA-Z0-9]");
string s = "dune";
string result = rgx.Replace(s, "-");
Console.WriteLine(result); //=> "----"