如何用.net中的新String替换第n个正则表达式组?
发布时间:2020-12-14 05:56:35 所属栏目:百科 来源:网络整理
导读:我有一个像这样的管道分隔字符串: 等等|等等|等等|等等|等等|等等|等等|等等|等等| oldDate |等等|等等| 我想用新的日期替换第10部分的内容.我能够将旧日期与以下代码相匹配: 'create a group with the first 9 non-pipes followed by a pipe,a group with
我有一个像这样的管道分隔字符串:
等等|等等|等等|等等|等等|等等|等等|等等|等等| oldDate |等等|等等| 我想用新的日期替换第10部分的内容.我能够将旧日期与以下代码相匹配: 'create a group with the first 9 non-pipes followed by a pipe,a group with the old date followed by a pipe,and sub-group of just the old date. Dim pipeRegEx As New RegularExpressions.Regex("(([^|]*|){9})(([^|]*)|)") 'the sub-group is the 4th group ordinal in the match GroupCollection Dim oldDate as String=pipeRegEx.Match(strMessage).Groups(4).Value 但是,我无法弄清楚如何用新文本重新组织该组.我试过了: pipeRegEx.Replace(strMessage,"$4",newDate) 'where newDate is a string var 但这会返回原始消息,就像它无法找到第4组一样.我无法用匹配的日期替换字符串,因为字符串中有多个日期(orderDate,receivedDate等),并且可能偶然匹配其中一个日期. 有谁知道如何替换这个文字? 在此先感谢您的帮助. 解决方法
Replace method是静态的.这意味着它没有考虑你在theRegEx对象pipeRegEx上调用它而是查找文字字符串“$4”的事实.
我会使用零宽度后视(?< =表达式)和零宽度前瞻(?=表达式)重写我的表达式,以便它只匹配第9项(并将其保留为字符串而不是正则表达式).然后你会打电话: RegEx.Replace(strMessage,pipeRegEx,newDate); RegEx语法资源:http://www.regular-expressions.info/reference.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- FLEX某些components工作不正常
- oracle 11g安装过程中问题:找不到WFMLRSVCApp.ear
- ruby-on-rails-3 – 如何从祖先生成json树
- ruby – 在每行上针对多个(15)正则表达式解析文本正文的最佳
- react-native – undefined不是一个函数(评估’decorator(t
- log4.xml
- 第7天-2 flashback table 】【flashback version query 】【
- Flex中TextInput组件如何设置限制长度,字符
- 如何在postgresql中将表约束更改为可延迟?
- ruby-on-rails – Rails编码标准 – 为什么2空格缩进?