正则表达式,删除除()之外的所有标点符号 -

时间:2013-12-06 11:57:01

标签: c# .net regex

我一直在尝试使用正则表达式删除除() - 和之外的任何标点符号的所有实例。从一个字符串,但发现很难让我的头。

这是我想出的那个,但它确实做了我需要做的一切。

有没有人有任何建议或帮助?任何人将不胜感激

Regex.Replace(address, @"(?<=[^A-Za-z0-9])(?!/s\*)", "");

3 个答案:

答案 0 :(得分:7)

试试这个:

Regex.Replace(address, @"[\p{P}-[()\-.]]", "");

小解释:\ p {P}或\ p {标点符号}匹配任何类型的标点符号(see unicode categories

答案 1 :(得分:2)

以下正则表达式可能符合您的需求:

Regex.Replace(address, @"[^\w\s\-\.\(\)]")

祝你好运。

答案 2 :(得分:0)

如何使用这样的char.IsPunctuation方法:

var newString = new string(yourString.Where(x => !char.IsPunctuation(x) || x == '(' || x == ')' || x == '.'))