C# 正則表達式 過濾特殊字符,保留中文,字母,數字,和-
C# 正則表達式 過濾特殊字符,保留中文,字母,數字,和-
資料來源: https://blog.csdn.net/weixin_33849942/article/details/86131458
https://blog.miniasp.com/post/2010/04/27/How-to-filter-special-characters-using-NET-Regex
測試程式碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace CS_Regex_FilterChar
{
class Program
{
public static string FilterChar(string inputValue, string Filter)//自訂過濾條件
{
byte []bytArray= System.Text.Encoding.Default.GetBytes(Filter);
for(int i=0;i< bytArray.Length;i++)
{
String Strbuf = String.Format("{0}",(char)bytArray[i]);
inputValue = inputValue.Replace(Strbuf, "");
}
return inputValue;
}
public static string FilterChar(string inputValue)
{
// return Regex.Replace(inputValue, "[`~!@#$^&*()=|{}‘:;‘,\\[\\].<>/?~!@#¥……&*()—|{}【】;‘’,。/*-+]+", "", RegexOptions.IgnoreCase);
if (Regex.IsMatch(inputValue, "[A-Za-z0-9\u4e00-\u9fa5-]+"))
{
return Regex.Match(inputValue, "[A-Za-z0-9\u4e00-\u9fa5-]+").Value;
}
return "";
}
static void Pause()
{
Console.Write("Press any key to continue...");
Console.ReadKey(true);
}
static void Main(string[] args)
{
string s = "zoo13579~!多奇數位@_$#%^%$&*().,>?[]-\"";
string r00 = FilterChar(s);
string r01 = Regex.Replace(s, @"[\W_]+", "");
string Filter = "\"@~!$#%^%$&+*/\\.,>?\"";
string r02 = FilterChar(s, Filter);
Console.WriteLine("{0}", s);
Console.WriteLine("{0}", r00);//中文都消失
Console.WriteLine("{0}", r01);//中文字會留下
Console.WriteLine("{0}", r02);//留下 中文字 _()[]-
Pause();
}
}
}
PS.第二篇可行
2 thoughts on “C# 正則表達式 過濾特殊字符,保留中文,字母,數字,和-”
介紹 一款 正則表達式 WINDOSWS 測試工具
[Expresso]
http://www.ultrapico.com/Expresso.htm
C# 正規表達式 / 正則表達式