需要正则表达式的帮助,删除除字母/数字以外的所有字符,并删除除小数点以外的点

本文关键字:删除 字符 小数点 正则表达式 帮助 数字 | 更新日期: 2023-09-27 17:54:02

我写这段代码是为了查找并删除除字母、空格、数字、百分比和点以外的所有字符。

Regex.Replace("some string", @"[^a-zA-Z0-9' '%'.]", "");

事实上,这可以找到除了字母/空格/数字/百分比/点以外的所有字符,我想修改如下:

查找所有特殊字符(除了字母/空格/数字/百分比),并且只在周围没有数字时查找点

我该怎么做?

需要正则表达式的帮助,删除除字母/数字以外的所有字符,并删除除小数点以外的点

我会从你的正则表达式中删除点,并有一个额外的正则表达式应用在字符串上,如下所示:

(?<='D)'.(?='D)

,只有当点的两边没有数字时才会删除。

如果要删除3。以及以上:

(?<='D)'.

如果你也想删除。3:

'.(?='D)

如果要删除所有的1.3,则3。和.3,然后应用上述两个,不需要第一个,因为它变得多余。

解释:

(?<=...)(?=...)分别是向后看和向前看,这意味着它检查它在那里,但不会在替换中包含它。

'D表示它不是一个数字。'd表示数字

'.表示它是一个点,它必须被转义,因为.在regex中表示任何字符

这个怎么样

            string test = "abc. 1.2";
            string pattern = "([a-zA-Z])(''.)";
            Regex expr = new Regex(pattern);
            string output = expr.Replace(test, "$1");​