C# 过滤特殊字符,保留中文,字母,数字,和-
时间: 2023-10-22 15:07:46 浏览: 203
你可以使用正则表达式来实现该功能,具体代码如下:
```csharp
string input = "hello, world! 你好,世界!123-456";
string pattern = @"[^\u4E00-\u9FA5a-zA-Z0-9-]";
string output = Regex.Replace(input, pattern, "");
Console.WriteLine(output);
```
该代码中,`input` 是待过滤的字符串,`pattern` 是用于匹配非中文、字母、数字和 `-` 的正则表达式,`output` 是过滤后的结果。`Regex.Replace` 方法可以将匹配到的字符串替换为空字符串,从而实现过滤的功能。
相关问题
C# 中去掉字符串中的特殊,只留下数字和字母,列如:A??--B.,&C123,-456??? 去掉以后变成:ABC123456
在C#中,你可以使用正则表达式(RegEx)来过滤出字符串中的数字和字母。以下是一个简单的示例,展示了如何使用`Regex.Replace()`方法去除特殊字符:
```csharp
using System;
using System.Text.RegularExpressions;
public class MainClass {
public static void Main() {
string input = "A??--B.,&C123,-456???";
string cleanedString = Regex.Replace(input, @"[^a-zA-Z0-9]", ""); // 匹配并替换非字母和数字的字符
Console.WriteLine(cleanedString); // 输出:ABC123456
}
}
```
在这个例子中,`[^a-zA-Z0-9]` 是一个正则表达式的模式,它匹配所有不是大写字母、小写字母和数字的字符。`Replace`方法将匹配到的所有这类字符替换为空字符串,实现了去除非数字和字母的效果。
c#如何取ConTen中的大写字母
在 C# 中,你可以使用 `ToUpper()` 或 `ToUpperInvariant()` 方法从字符串中提取所有大写字母。这两个方法都是 `System.String` 类中的成员,它们分别返回一个新的字符串,其中包含原字符串中的所有字符转换为大写。
如果你有一个名为 `content` 的字符串变量,你可以这样做:
```csharp
string content = "Hello World!";
string upperCaseContent = content.ToUpper(); // 返回 "HELLO WORLD!"
```
如果你想保留原始字符串不变并获取一个新的只包含大写的字符串,可以这样做:
```csharp
string content = "Hello World!";
string upperCaseOnly = new string(content.Where(c => char.IsUpper(c)).ToArray()); // 返回 "HELLO WORLD!" (假设小写字符不参与)
```
这里我们使用了 LINQ(Language Integrated Query)的 `Where` 方法过滤出所有的大写字母。
阅读全文