C#正则表达式过滤器

时间:2015-07-16 06:21:29

标签: c# regex

我有这个正则表达式过滤器:<+>|\P{L}

删除数字和HTML标记。

我的问题是空格也被删除了,我不希望删除空格。

例如,我需要将此文本“(0)发货”更改为此“发货”。现在它返回“ShipOut”。

我该如何解决?

2 个答案:

答案 0 :(得分:3)

您可能正在寻找一种方法来匹配\P{L}(任何不是Unicode字母的字符)并且仍然无法匹配空格。

在否定字符类\p{L}中使用反向速记类[^\p{L}\s]

不知道<+>是否适合您,您可能正在寻找<[^<]*>

所以,我的建议是

Regex.Replace(str, @"<[^<]*>|[^\p{L}\s]", string.Empty).Trim();

请参阅demo

enter image description here

Trim()将摆脱前导和尾随空格。

答案 1 :(得分:0)

 <+>|\P{L}|\P{Z}

您可以使用此过滤器。

See demo.

您也可以使用

\p{L}|(?<=\p{L})\p{Z}(?=\p{L})

如果您想在单词之间保留space