gpt4 book ai didi

vb.net - 如何正则表达式替换命名组

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

我需要使用 RegEx.Replace 仅替换输入字符串中的某些命名组。

所以我可能有这样的模式:

"^(?<NoReplace>.+)(?<FirstPeriod>(\d{2})|CM|RM|PM|CN|RN){1}(?<LastPeriod>(\d{2})|CM|RM|PM|CN|RN){1}((#(?<NumberFormat>[#,\.\+\-%0]+))*)$"

诸如 CM、RM 之类的 token 正在使用带有 MatchEvaluator 的 Regex.Replace 替换。但是,这应该只替换 FirstPeriod 和 LastPeriod 组中的字符。

示例输入: "FIELDCNS 01CM"
期望的输出: "FIELDCNS 0104"
错误的输出: "FIELD**04**S 0104"
这是可能的还是我最好只是拔出我想更换的零件然后重新组装?

最佳答案

我不完全确定我明白你在问什么,但如果你只想在你与正则表达式匹配的部分之间替换一些字符串,那么诀窍是捕获你不想替换的所有位.例如,替换所有 "blah" s 与 "XXXXX" s 但仅在 "foo"和 "bar" 之间,你可以这样做:

Dim regex As Regex = new Regex("(foo.*)blah(.*bar)")
Console.WriteLine(regex.Replace( _
"blah foo bar baz blah baz bar blah blah foo blah", "$1XXXXX$2"))
Console.ReadLine()

blah foo bar baz XXXXX baz bar blah blah foo blah

关于vb.net - 如何正则表达式替换命名组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1191014/

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