什么是正则表达式,只允许我使用字母,特殊字符和空格?

时间:2016-02-25 05:40:45

标签: c#

什么是正则表达式,它只允许我使用字母,特殊字符和空格???

这是我现在的一个不起作用:

Regex r1 = new Regex("^[a-zA-Z~@#$^*()_+=[]{}|\\,.?: -]*$"); 

2 个答案:

答案 0 :(得分:0)

inputStr为输入字符串,它是字母数字和特殊字符的组合。

即,

string inputStr="asdfsf$@#%# @$%#$^%$^412545SDF S4658#$%3453453$%#$53"

您将使用以下代码获取数字空闲字符串:

string result= Regex.Replace(inputStr,@"\d", "");

答案 1 :(得分:0)

这将删除字符串中的任何数字:

struct Number: Equatable {
    var x: Int
    var y: Int
}

func ==(lhs: Number, rhs: Number) -> Bool {
    return lhs.x == rhs.x && lhs.y == rhs.y
}

let dicOfStringStringAr1: [String : [Number]] = ["key1" : [Number(x: 1, y: 2), Number(x: 1, y: 2)]]
let dicOfStringStringAr2: [String : [Number]] = ["key1" : [Number(x: 1, y: 2), Number(x: 1, y: 2)]]
if dicOfStringStringAr1 == dicOfStringStringAr2 {
    print("Dictionary of String Array") // "Dictionary of String Array"
}

输出:

string pattern = @"\d";
string str = "sjfk jsdkj f236470924824$^^*)()";
string output = Regex.Replace(str, pattern, "", RegexOptions.Singleline);
Console.WriteLine(output);

这将返回按字母数字分割的字符串列表,不包括数字:

sjfk jsdkj f$^^*)()

输出:

string pattern2 = @"([^\d]+)";
MatchCollection ms= Regex.Matches(str, pattern2, RegexOptions.Singleline);
foreach(Match m in ms)
{
    Console.WriteLine(m.Value);
}

这将返回按字母分割的字符串列表,包括数字:

sjfk jsdkj f
$^^*)()

输出:

string pattern3 = @"([^\d]+)";
string[] strs= Regex.Split(str, pattern3, RegexOptions.Singleline);
foreach (string s in strs)
{
    Console.WriteLine(s);
}