gpt4 book ai didi

正则表达式模式匹配串联

转载 作者:行者123 更新时间:2023-12-04 16:01:16 25 4
gpt4 key购买 nike

是否可以仅使用正则表达式语法来连接正则表达式模式匹配的结果?

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

例如:

输入字符串: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对象或匹配对象的列表,无论输入的正则表达式字符串如何,它们都不会执行您想要的操作。

关于正则表达式模式匹配串联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6981950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com