C# 仅从字符串的开头和结尾删除非字母数字字符

C# 仅从字符串的开头和结尾删除非字母数字字符,c#,regex,C#,Regex,我正在尝试使用helper exe(C#)清理一些数据 我遍历每个字符串,希望从字符串的开头和结尾删除无效字符,即从$$$$helloworld$$$中删除美元符号 使用以下正则表达式可以很好地工作:\W 但是,中间包含无效字符的字符串应该单独保留,即 hello $ $$Word < /C> >,并且我的正则表达式不应该与这个特定字符串匹配。 因此,本质上,我试图找出匹配字符串开头和结尾无效字符的语法,但将包含无效字符的字符串保留在其主体中 谢谢你的帮助 就是这样 (^[\W_]*)|([\W

我正在尝试使用helper exe(C#)清理一些数据

我遍历每个字符串,希望从字符串的开头和结尾删除无效字符,即从
$$$$helloworld$$$
中删除美元符号

使用以下正则表达式可以很好地工作:
\W

但是,中间包含无效字符的字符串应该单独保留,即<代码> hello $ $$Word < /C> >,并且我的正则表达式不应该与这个特定字符串匹配。 因此,本质上,我试图找出匹配字符串开头和结尾无效字符的语法,但将包含无效字符的字符串保留在其主体中

谢谢你的帮助

就是这样

(^[\W_]*)|([\W_]*$)

regex
表示在开头(
^
)或结尾(
$
)匹配零个或多个非单词字符。

以下操作应有效:

^\W+|\W+$

^
$
分别是字符串开头和结尾的锚点。中间的“代码”>是一个OR,因此这个正则表达式意味着“在字符串的开头匹配一个或多个非单词字符,或者匹配字符串结尾的一个或多个非单词字符”。

< P>使用^匹配字符串的开始,和$匹配字符串的结尾。 试试这个

 (^[^\w]*)|([^\w]*$)

使用“^”匹配“行首”和“$”匹配“行尾”,即您的代码应该匹配并删除“^\W*和\W*$”

注意:使用
\W
将忽略下划线和字母数字,因此类似“\u helloworld\u”的内容将保持不变。如果这给OP带来了问题,那么他们可以使用类似于
[^\W\uz]
的东西,而不是普通的
\W