我没有太多使用RegEx的经验,所以我使用许多链式String.Replace()调用来删除不需要的字符 - 我可以编写一个RegEx来简化这个吗?
string messyText = GetText();
string cleanText = messyText.Trim()
.ToUpper()
.Replace(",", "")
.Replace(":", "")
.Replace(".", "")
.Replace(";", "")
.Replace("/", "")
.Replace("\\", "")
.Replace("\n", "")
.Replace("\t", "")
.Replace("\r", "")
.Replace(Environment.NewLine, "")
.Replace(" ", "");
Run Code Online (Sandbox Code Playgroud)
谢谢
999*_*999 14
试试这个正则表达式:
Regex regex = new Regex(@"[\s,:.;/\\]+");
string cleanText = regex.Replace(messyText, "").ToUpper();
Run Code Online (Sandbox Code Playgroud)
\s是一个等同于的字符类[ \t\r\n].
如果您只想保留字母数字字符,而不是将现有的每个非字母数字字符添加到字符类中,您可以这样做:
Regex regex = new Regex(@"[\W_]+");
string cleanText = regex.Replace(messyText, "").ToUpper();
Run Code Online (Sandbox Code Playgroud)
哪个\W是非单词字符(不是[^a-zA-Z0-9_]).
| 归档时间: |
|
| 查看次数: |
8879 次 |
| 最近记录: |