正则表达式模式匹配连接

前端之家收集整理的这篇文章主要介绍了正则表达式模式匹配连接前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以仅使用 Regex语法连接正则表达式模式匹配的结果?

具体的实例是一个程序允许正则表达式语法从文件提取信息,但我希望它从几个部分拉出并连接结果.

例如:

输入字符串:1234567890

期望的结果字符串:2389

正则表达式模式匹配:(?< = 1). (?= 4)%%(小于?= 7). (θ= 0) 其中%%表示某种形式的连接语法.使用语法的开始和结束很重要,因为我知道字段名称而不是字段的值. 是否存在像%%一样的关键字?有更聪明的方法吗?必须更改代码以允许多个正则表达式输入,自动连接? 同样,要连接的部分可能相隔很远,其间有未知字符.所有已知的是围绕子串的信息. 2011-08-08编辑:该程序是用C#编写的,但与找到基于正则表达式的解决方案相比,更改代码是一项重大任务.

解决方法

如果不确切地知道你想要匹配什么以及你正在使用什么语言,就不可能给你一个确切的答案.但是,通常的方法是使用 grouping.

在C#中:

string pattern = @"(?<=1)(.+)(?=4).+(?<=7)(.+)(?=0)";
Match m = Regex.Match(input,pattern);

string result = m.Groups[0] + m.Groups[1];

同样的方法也可以应用于许多其他语言.

编辑

如果您无法更改代码,那么就无法完成您想要的任务.原因是在C#中,正则表达式字符串本身对输出没有任何影响.要更改结果,您必须更改Regex类的被调用方法,或者之后再做一些额外的工作.实际上,调用方法很可能只返回Match对象或匹配对象列表,无论输入正则表达式字符串如何,它们都不会执行您想要的操作.

猜你在找的正则表达式相关文章