加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式模式匹配连接

发布时间:2020-12-14 06:07:19 所属栏目:百科 来源:网络整理
导读:是否可以仅使用 Regex语法连接正则表达式模式匹配的结果? 具体的实例是一个程序允许正则表达式语法从文件中提取信息,但我希望它从几个部分拉出并连接结果. 例如: 输入字符串:1234567890 期望的结果字符串:2389 正则表达式模式匹配:(? = 1). (?= 4)%%(
是否可以仅使用 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对象或匹配对象列表,无论输入正则表达式字符串如何,它们都不会执行您想要的操作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读