gpt4 book ai didi

c# - 如果它仅位于字符串中第一个和最后一个位置,如何删除特殊字符c#

转载 作者:行者123 更新时间:2023-12-02 06:12:48 26 4
gpt4 key购买 nike

如果特殊字符作为字符串的第一个和最后一个字符出现,我将尝试删除它。

代码;

  Regex.Replace(searchParams.SearchForText, @"(\s+|@|%|&|'|\(|\)|<|>|#)", "");

但它会删除特殊字符,即使它位于字符串的中间。

ex : input : $input@text%
output : input@text

最佳答案

你可以使用

var pattern = @"(?:\s+|[@%&'()<>#])";
var result = Regex.Replace(searchParams.SearchForText, $@"^{pattern}|{pattern}$", "");

查看生成的 ^(?:\s+|[@%&'()<>#])|(?:\s+|[@%&'()<>#])$ regex demo .

如果您需要从字符串的开头和/或结尾处删除所有这些字符,请使用

var result = Regex.Replace(searchParams.SearchForText, @"^[@%&'()<>#\s]+|[@%&'()<>#\s]+$", "");

参见 this regex demo .

这里,请注意,所有单个字符替代项都连接到一个字符类中,以便更有效地进行搜索。它们不必在字符类中进行转义,因此模式更加清晰。

接下来,自 \s+匹配一个或多个空白字符,它不能与字符类中的单个字符替代项合并,因此使用具有交替的非捕获组,(?:...|...) .

^主播第一^{pattern}仅在字符串开始位置匹配,$ anchor 使第二个{pattern}$仅在字符串末尾进行替代匹配。

pattern应该重复两次,它被声明为一个变量,正则表达式是动态构建的。

关于c# - 如果它仅位于字符串中第一个和最后一个位置,如何删除特殊字符c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60772118/

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