从字符串

时间:2018-02-05 16:21:43

标签: c# regex vb.net

有没有办法,使用c#或vb,取一个字符串(在这种情况下是一个电话号码)并从中构造一个正则表达式匹配字符串,这样它也会忽略那里的空格或其他字符?

因此,假设输入字符串为01789000111,则会在所有这些上找到匹配: -

01789 000111或01789 000 111 OR 01789 00 01 11 OR(01789)000111

1 个答案:

答案 0 :(得分:3)

使用正则表达式替换删除非数字,然后比较:

var match = Regex.Replace(src, @"\D+", "") == target;

或者,您可以将目标数字转换为模式并测试:

var ans = Regex.IsMatch(src, Regex.Replace(target, @"\d", @"\D?$0\D?"))

如果要将大量src字符串与目标进行比较,则应该从目标中创建一个已编译的Regex

var tpattern = new Regex(Regex.Replace(target, @"\d", @"\D?$0\D?"), RegexOptions.Compiled);

var ans = tpattern.IsMatch(src);