gpt4 book ai didi

c# - 正则表达式查找和删除具有特定模式的字符

转载 作者:行者123 更新时间:2023-11-30 23:16:51 26 4
gpt4 key购买 nike

我有这个字符串

This is mail@mail.text #1 but page is @001# 

(001 是可变的,例如 01a 或 021 等)

我也想去

This is mail@mail.text #1 but page is 001

使用这个 ^@([0-9]{1,3})#\z 我可以找到一个以“@”开头并以“#”结尾的字符串,最多 3 个字符里面,但它在整个文本中不匹配。

最佳答案

您需要删除 ^(字符串 anchor 的开头)并使用 $1 反向引用将匹配项替换为第 1 组的内容:

var str = "This is mail@mail.text #1 but page is @001#";
var result = Regex.Replace(str, @"@([0-9]{1,3})#\z", "$1");

参见 regex demo

@([0-9]{1,3})#\z 模式将找到 @,1 到 3 位数字(放在一个组内),然后是字符串 (\z) 的非常 末尾的 #

另一种变体:如果值可能以数字开头并且后面可以跟一个 ASCII 字母或数字,则使用

var result = Regex.Replace(str, @"@([0-9][0-9a-zA-Z]{0,2})#\z", "$1");

如果值只能是字母数字,就使用

var result = Regex.Replace(str, @"@([0-9a-zA-Z]{1,3})#\z", "$1");

关于c# - 正则表达式查找和删除具有特定模式的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41828517/

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