gpt4 book ai didi

c# - 删除冒号和回车并替换为冒号

转载 作者:行者123 更新时间:2023-11-30 16:39:55 25 4
gpt4 key购买 nike

我正在做一个项目,其中有一个需要清理的 HMTL 片段 - HTML 已被删除,并且由于表格被删除,有一些不应该出现的奇怪结尾 :-)

出现的字符是

  1. 行首空格
  2. 行尾的冒号、回车符和换行符——只需将其替换为冒号即可;

我目前使用正则表达式如下:

s = Regex.Replace(s, @"(:[\r\n])", ":", RegexOptions.Multiline | RegexOptions.IgnoreCase);

// gets rid of the leading space
s = Regex.Replace(s, @"(^[( )])", "", RegexOptions.Multiline | RegexOptions.IgnoreCase);

我正在处理的例子:

Tomas Adams

Solicitor
APLawyers
p:
1800 995 718
f:
07 3102 9135
a:
22 Fultam Street
PO Box 132, Booboobawah QLD 4113

应该是这样的:

Tomas Adams
Solicitor
APLawyers
p:1800 995 718
f:07 3102 9135
a:22 Fultam Street
PO Box 132, Booboobawah QLD 4313

作为我尝试清理字符串,但结果远非完美......有人可以帮助我纠正错误并实现我的目标......

[编辑]有问题的角色

f:\r\n07 3102 9135\r\na:\r\n22 

:\r\n 的组合应替换为单个冒号。

国际机场

达林

最佳答案

你可以使用

var result = Regex.Replace(s, @"(?m)^\s+|(?<=:)(?:\r?\n)+|(\r?\n){2,}", "$1")

参见 .NET regex demo .

详情

  • (?m) - 等于 RegexOptions.Multiline - 制造 ^匹配此处任何行的开头
  • ^ - 行首
  • \s+ - 1+ 个空格
  • | - 或者
  • (?<=:)(?:\r?\n)+ - 紧接在 : 之前的位置(与 (?<=:) 正后视相匹配)随后出现 1 次以上的可选 CR 和 LF(已删除)
  • | - 或者
  • (\r?\n){2,} - 连续出现两次或多次可选 CR,后跟 LF 符号。只有最后一次出现在第 1 组内存缓冲区中,因此 $1替换模式插入最后一次出现。

关于c# - 删除冒号和回车并替换为冒号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52316149/

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