正则表达式:在变量名中删除无效字符

让我们假设我有这个变量名:$$ 5#瓦尔_# #1!

现在我想删除无效字符(粗体)。 规则是:允许的字符是AZ,AZ,下划线和0-9,但(在这里来)不是第一个字符。 (预期结果:Var_Name1)

我目前在2个步骤做到这一点: s/[^a-zA-Z_]//g ,比s/^[0-9]//g

是否有可能与一个正则表达式来做到这一点?

由于UND问候

--------------解决方案-------------

这应该这样做:

s/^[^a-zA-Z_]+|[^a-zA-Z_0-9]+//g

在这里, g在最后表示全局替换。

当前的方法除去在第一步骤中的所有数字,所以第二步骤是无意义的,其结果将是Var_Name而非预期Var_Name1

您可以使用一种模式像这样以匹配删除:

^[^A-Za-z_]+|\W+

例如,在C#中:

string name = "$$5Var#_#Name#1!!";
name = Regex.Replace(name, @"^[^A-Za-z_]+|\W+", String.Empty);
Console.WriteLine(name);

输出:

Var_Name1

分类:正则表达式 时间:2015-03-16 人气:105
本文关键词: 正则表达式,字符
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.331 (s). 9 q(s)