我很难弄清楚这个正则表达式模式。我想替换字符串中除某些字母字符模式之外的所有非数字字符。
例如,我正在尝试:
string str = "The sky is blue 323.05 lnp days of the year";
str = Regex.Replace(str, "(^blue|lnp|days)[^.0-9]", "", RegexOptions.IgnoreCase);我想让它返回:
“蓝色323.05 lnp天”
但是我不知道如何让它与表达式中的整个字符模式相匹配。
发布于 2019-10-28 06:45:42
我建议捕获您需要保留的内容,只匹配您需要删除的内容:
var result = Regex.Replace(text, @"(\s*\b(?:blue|lnp|days)\b\s*)|[^.0-9]", "$1").Trim();请参阅regex demo。请注意,最终的前导/尾随空格将使用.Trim()进行修剪。
正则表达式表示:
| - or[^.0-9] -除.和ASCII位以外的任何字符。https://stackoverflow.com/questions/58581137
复制相似问题