惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tailwind CSS Blog
The GitHub Blog
The GitHub Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog
Microsoft Security Blog
Microsoft Security Blog
Stack Overflow Blog
Stack Overflow Blog
量子位
Martin Fowler
Martin Fowler
月光博客
月光博客
P
Proofpoint News Feed
博客园_首页
Y
Y Combinator Blog
I
InfoQ
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Visual Studio Blog
H
Help Net Security
U
Unit 42
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 司徒正美
MongoDB | Blog
MongoDB | Blog
F
Fortinet All Blogs
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell

博客园 - 未未

用vsstudio 设计Winform 高分屏上布局错乱的问题 探寻路径 jsonToxml 通过LL型方法实现(C#)[源] 数据类型和Json格式[zt] 繁星代码生成器开源 (源代码) 繁星查询分析器 代码生成器 架构提取工具-tqdemo SyCODE Syntax Highlighter javascript语法高亮引擎 自动代码生成和VBA脚本 代码生成工具的分类及比较 模板语法规则说明 繁星代码生成器0.91版 【视频】 0.9版-繁星代码生成器 转:C#开源资源大汇总 代码生成原则Top10 我的系分之路 你必须知道的10种国产编程语言 有关调试的方法 [源码]C# to SQL 的翻译器.net 1.1版
揭秘正则表达式 我的lxfRegex现实[源]
未未 · 2008-04-17 · via 博客园 - 未未

正则表达式的用途十分的广泛,常用在搜索和替换,几乎所有的编程语言都对其支持各种的地方,如js,java ,c#都有自己的实现类,所以在使用起来也是十分的方便.
 很想弄明白他在每种语言中是如何做的,于是在没有弄得源码前,先动手用C#语言去做了一个支持正则表达式实现的类,目前实现功能十分的简单,支持IsMatch和Relace的处理基本字符的实现,
代码有诸多的不足,希望多多见谅.

示例代码:

lxfRegex lxf = new lxfRegex(txtregex.Text);


            StringBuilder sb 
= new StringBuilder();
            sb.AppendLine(
"括号结果");

            
foreach (MatchUnit mu in lxf.Matches(txtSrc.Text))
            
{
                sb.AppendLine(
"Match匹配" + ind++);
                
int i = 0;
                
for (int j = 0; j < mu.Groups.Count; j++)
                
{
                    sb.AppendLine(
"Group" + j + mu.Groups[j].Value);

                    
foreach (CaptureUnit t in mu.Groups[j].Captures)
                    
{
                        sb.Append(
" Capture" + i);
                        sb.Append(
" Index:" + t.Index + " Length:" + t.Length);
                        sb.Append(
" = " + t.Value);
                        sb.AppendLine();
                        i
++;
                    }

                }

            }

            
this.txtMatch.Text = sb.ToString();


演示位置:
http://www.iyuyan.com/regex爱语言
下载源码:

源代码