C# 正则表达式及返回匹配的所有结果

  C# 正则表达式是在  System.Text.RegularExpressions 空间定义的,其中的 IsMatch() 方法用于返回 bool 类型,表示要搜索的字符串与传入的正则表达式是否匹配,如果匹配返回 true, 否则返回 false, 如果想要获取所有的匹配结果,就要调用 Matches,方法,该方法返回 MatchCollection 集合对象,通过遍历集合,即可获取所有的匹配结果。

    /// <summary>
        /// 获取正则表达式匹配结果集
        /// </summary>
        /// <param name="value">字符串</param>
       /// <param name="regx">正则表达式</param>
        /// <returns></returns>
        private float[] GetPathPoint(string value, string regx)
        {
            if (string.IsNullOrWhiteSpace(value))
                return null;
            bool isMatch = System.Text.RegularExpressions.Regex.IsMatch(value, regx);
            if (!isMatch)
                return null;
            System.Text.RegularExpressions.MatchCollection matchCol = System.Text.RegularExpressions.Regex.Matches(value, regx);
            float[] result = new float[matchCol.Count];
            if (matchCol.Count > 0)
            {
                for (int i = 0; i < matchCol.Count; i++)
                {
                    result[i] = float.Parse(matchCol[i].Value);
                }
            }
            return result;
        }

  

  参考文章:

msdn 正则表达式搜索字符串:https://msdn.microsoft.com/zh-cn/library/ms228595.aspx

JavaScript正则表达式在线测试工具:http://tools.jb51.net/regex/javascript

msdn 正则表达式快速参与  https://msdn.microsoft.com/zh-cn/library/az24scfc(v=vs.110).aspx

正则表达式参考:  http://ahkcn.github.io/docs/misc/RegEx-QuickRef.htm

时间: 2024-10-28 16:55:53

C# 正则表达式及返回匹配的所有结果的相关文章

JAVA之旅(三十四)——自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫

JAVA之旅(三十四)--自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫 我们接着来说网络编程,TCP 一.自定义服务端 我们直接写一个服务端,让本机去连接,可以看到什么样的效果 package com.lgl.socket; import java.io.IOException; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; publ

Delphi 正则表达式语法(3): 匹配范围

Delphi 正则表达式语法(3): 匹配范围 // [A-Z]: 匹配所有大写字母 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(nil);   reg.Subject := 'CodeGear Delphi 2007 for Win32';   reg.RegEx  := '[A-Z]';   reg.Replacement := '◆';   reg.ReplaceAll;   ShowMessage(reg.Subject

Delphi 正则表达式语法(7): 匹配转义字符

Delphi 正则表达式语法(7): 匹配转义字符 // ? 号的意义是匹配 0-1 次, 如果需要匹配 ? 怎么办 var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(nil);   reg.Subject := '你好吗? 还行!';   reg.RegEx  := '\?|!'; // 加转义用的 \   reg.Replacement := '◆';   reg.ReplaceAll;   ShowMessage(reg.Sub

正则表达式的全局匹配模式

首先,要明确一点,所有的正则表达式都有一个lastIndex属性,用于记录上一次匹配结束的位置.如果不是全局匹配模式,那lastIndex的值始终为0,在匹配过一次后,将会停止匹配. 正则表达式的全局匹配模式,就是在创建正则表达式的时候使用g标识符或者将global属性设置为true,在全局匹配模式下,正则表达式会对指定要查找的字符串执行多次匹配.每次匹配使用当前正则对象的lastIndex属性的值作为在目标字符串中开始查找的起始位置.如果找不到匹配的项lastIndex的值会被重新设置为0.

JS正则表达式的分组匹配

什么是分组 通俗来说,我理解的分组就是在正则表达式中用()包起来的内容代表了一个分组,像这样的: var reg = /(\d{2})/ reg.test('12'); //true 这里reg中的(/d{2})就表示一个分组,匹配两位数字 分组内容的的形式 一个分组中可以像上面这样有一个具体的表达式,这样可以优雅地表达一个重复的字符串 /hahaha/ /(ha){3}/ 这两个表达式是等效的,但有了分组之后可以更急简洁. 体格分组中还可以有多个候选表达式,例如 var reg = /I co

shell 正则表达式与文件名匹配

1) . : 匹配任意单ASCII 字符,可以为字母,或为数字.2) 举例: ..XC..匹配deXC1t.23XCdf等,.w..w..w.匹配rwxrw-rw-行首以^匹配字符串或字符序列1) ^ : 允许在一行的开始匹配字符或单词.2) 举例: ^.01 匹配0011cx4.c01sdf 等,^d 匹配drwxr-xr-x.drw-r--r--等 行尾以$匹配字符串或字符 1) $ : 在行尾匹配字符串或字符,$符号放在匹配单词后.2) 举例: trouble$ 匹配以单词trouble结

正则表达式的汉字匹配

这里是几个主要非英文语系字符范围 2E80-33FFh:中日韩符号区.收容康熙字典部首.中日韩辅助部首.注音符号.日本假名.韩文音符,中日韩的符号.标点.带圈或带括符文数字.月份,以及日本的假名组合.单位.年号.月份.日期.时间等. 3400-4DFFh:中日韩认同表意文字扩充A区,总计收容6,582个中日韩汉字. 4E00-9FFFh:中日韩认同表意文字区,总计收容20,902个中日韩汉字. A000-A4FFh:彝族文字区,收容中国南方彝族文字和字根. AC00-D7FFh:韩文拼音组合字区

关于正则表达式的递归匹配问题

经常会有这样的需求,要求匹配出成对的小括号里的内容, 而一般正则表达式中的 ?R 的语法似乎在C#中不被支持, 在一番努力之下,终于找到以下一段描述 /(  应该是 \( 不是用 /转义而是用 \来转义 匹配嵌套的构造 微软公司已经包含了一个有趣的创新来匹配稳定的构造(历史上,这是正则表达式所做不到的).这并不容易掌握 — 尽管这节较短,但是注意,它非常的晦涩难懂. 从一个例子开始可能更简单一些,所以我用这段代码作为开始: Regex r = new Regex(@"/((?>[^()]+

C#正则表达式的递归匹配分析

在C#程序设计中经常会遇到这样的需求,要求匹配出成对的小括号里的内容,但是一般正则表达式中的 ?R 的语法似乎在C#中不被支持, 经过一番查找与测试,终于找到以下一段描述 /(  应该是 \( 不是用 /转义而是用 \来转义 匹配嵌套的构造 微软公司已经包含了一个有趣的创新来匹配稳定的构造(历史上,这是正则表达式所做不到的).这并不容易掌握 ― 尽管这节较短,但是注意,它非常的晦涩难懂. 从一个例子开始可能更简单一些,所以我用这段代码作为开始: Regex r = new Regex(@"/((