VB.NET中如何使用正则表达式进行命名组替换操作?

2026-05-08 12:593阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计352个文字,预计阅读时间需要2分钟。

VB.NET中如何使用正则表达式进行命名组替换操作?

我需要使用RegEx.Replace来替换输入字符串中的某些命名组。例如,我可能会遇到以下模式:

+^\s*(?NoReplace|FirstPeriod{2}|CM|CRM|PM|CN|RN){1}(\s*(?LastPeriod{2}|CM|CRM|PM|CN|RN){1})*$

直接输出结果:+^\s*(?NoReplace|FirstPeriod{2}|CM|CRM|PM|CN|RN){1}(\s*(?LastPeriod{2}|CM|CRM|PM|CN|RN){1})*$

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

VB.NET中如何使用正则表达式进行命名组替换操作?

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

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

使用带有MatchEvaluator的Regex.Replace替换CM,RM等标记.但是,这应该只替换FirstPeriod和LastPeriod组中的字符.

输入示例:
“FIELDCNS 01CM”

期望的输出:
“FIELDCNS 0104”

输出不正确:
“FIELD ** 04 ** S 0104”

这是可能的还是我最好只是拔出我想要更换和重新组装的部件?

我不完全确定我理解你所要求的是什么,但是如果你想要在正则表达式匹配的部分之间替换一些字符串,那么诀窍是捕获你不想要替换的所有部分.例如,要用“XXXXX”替换所有“blah”,但只能在“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

本文共计352个文字,预计阅读时间需要2分钟。

VB.NET中如何使用正则表达式进行命名组替换操作?

我需要使用RegEx.Replace来替换输入字符串中的某些命名组。例如,我可能会遇到以下模式:

+^\s*(?NoReplace|FirstPeriod{2}|CM|CRM|PM|CN|RN){1}(\s*(?LastPeriod{2}|CM|CRM|PM|CN|RN){1})*$

直接输出结果:+^\s*(?NoReplace|FirstPeriod{2}|CM|CRM|PM|CN|RN){1}(\s*(?LastPeriod{2}|CM|CRM|PM|CN|RN){1})*$

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

VB.NET中如何使用正则表达式进行命名组替换操作?

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

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

使用带有MatchEvaluator的Regex.Replace替换CM,RM等标记.但是,这应该只替换FirstPeriod和LastPeriod组中的字符.

输入示例:
“FIELDCNS 01CM”

期望的输出:
“FIELDCNS 0104”

输出不正确:
“FIELD ** 04 ** S 0104”

这是可能的还是我最好只是拔出我想要更换和重新组装的部件?

我不完全确定我理解你所要求的是什么,但是如果你想要在正则表达式匹配的部分之间替换一些字符串,那么诀窍是捕获你不想要替换的所有部分.例如,要用“XXXXX”替换所有“blah”,但只能在“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