非常有用的正则表达式

在网上经常看有人找匹配这种字符串的正则表达式:"1231232,3454545,456546,45656,456"
或者:"ae-fgerg-drg-ert-hj"
明白了吗 总之一句话:要匹配以任意字符隔开的各种格式的字符串
看上去好像很难哦非常有用的正则表达式 - assassinx@126 - assassinXs Blog

easy
看我的
匹配以逗号隔开的任意整数:

var ids = document.getElementById('TextBox1').value;

		var reg = /^\d*(,\d+)*$/;

		if (reg.test(ids)) 

			return true

		else {

			alert("新闻编号列表 格式不对, 示例: 4569,4586,3569")

			return false

		}



来分析一下:
^跟$为正则的开始和结尾 不用多说了吧

\d* 指定必须以数字开头

,\d+ 作为第一组数字后面的限定(必须为逗号加数字)

哈哈关键地方到了非常有用的正则表达式 - assassinx@126 - assassinXs Blog
(,\d+)*  逗号加数字的形式可出现0到多次

就这样联合开始出的整数验证就实现我们要的效果了
是不是很简单非常有用的正则表达式 - assassinx@126 - assassinXs Blog

下面这个也是一个关于正则表达式的应用(c#):

class Program

{

    static void Main(string[] args)

    {

        result.Clear();

        find("sdfa3<6233810>45ss//<345><898><12234>--<112><911>><779>***<55781818>//u");



        foreach (var item in result)

            Console.WriteLine(item);

    }



    static IList<string> result = new List<string>();

    static void find(string str)

    {

        int indx = 0;

        //正则其实很简单[0-9]+代表数字组合任意多个

        //\<代表以尖括号开头\>代表以尖括号结尾 

        //外面的圆括号代表这种组合任意多个

        Regex r = new Regex(@"(\<[0-9]+\>)+");

        Match m = r.Match(str);

        indx = m.NextMatch().Index;



        if (m.Value.Length > 0)

            result.Add(m.Value);

        //Console.WriteLine(m.Value);

        //如果他的下一个匹配是有值的则继续进行递归匹配

        //直到把所有的都匹配完为止

        if (m.NextMatch().Length > 0)

            find(str.Substring(indx));

    }

}

 

简单吧^_^

你可能感兴趣的:(正则表达式)