gpt4 book ai didi

c# - 正则表达式:目标并部分替换

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:02 25 4
gpt4 key购买 nike

我正在尝试删除字符串中某些字符之间的空格:

element 1  : 200  :2   1 2 3 4    - 30        node 1:39

element 1:200:2   1 2 3 4    -30        node 1:39

删除的空格位于数字之间并包含 :- 和数字之间。到目前为止,我已经了解了这个以数字之间的空格为目标并包含 :- 的正则表达式。

Regex mySpace = new Regex(@"\W+ (:|-) +");

接下来我想做的是删除这些匹配项中的空格。我怎么能那样做?也许使用一些更复杂的 Regex 直接匹配所需的空格,然后将它们替换为空字符串?

最佳答案

下面的正则表达式将完全匹配由 : 分隔的数字之间的空格或 - 后的空格直到第一个数字。只需将匹配的空格替换为空字符串即可。

(?<=\d)\s*(?=:)|(?<=:)\s+|(?<=-)\s+(?=\d)

DEMO

您的 C# 代码将是,

string pattern = @"(?<=\d)\s*(?=:)|(?<=:)\s+|(?<=-)\s+(?=\d)";
string test = Regex.Replace("element 1 : 200 :2 1 2 3 4 - 30 node 1:39", pattern, "");
Console.WriteLine(test);
Console.ReadLine();

输出:

element 1:200:2   1 2 3 4    -30        node 1:39

IDEONE

解释:

  • (?<=\d)\s*(?=:)匹配数字后跟 : 之后的空格
  • |逻辑或运算符。
  • (?<=:)\s+匹配 : 之后的一个或多个空格
  • |逻辑或运算符。
  • (?<=-)\s+(?=\d)匹配 - 之后的一个或多个空格后跟一个数字。

关于c# - 正则表达式:目标并部分替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24587787/

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