4

我正在尝试使用帮助程序 exe (C#) 清理一些数据。

我遍历每个字符串,我想从字符串的开头和结尾删除无效字符,即从$$$helloworld$$$.

使用这个正则表达式可以正常工作:\W.

但是,中间包含无效字符的字符串应该单独保留,即hello$$$$world很好,我的正则表达式不应该匹配这个特定的字符串。

所以本质上,我试图找出匹配字符串开头和结尾的无效字符的语法,但将包含无效字符的字符串留在其正文中。

谢谢你的帮助!

4

5 回答 5

7

这样做!

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

regex表示在 start() 处匹配零个或多个非单词字符^|在 end() 处匹配 ( $)

于 2012-10-05T16:09:23.870 回答
0

以下应该有效:

^\W+|\W+$

^并且$分别是字符串开头和结尾的锚点。中间|是 OR,所以这个正则表达式的意思是“要么匹配字符串开头的一个或多个非单词字符,要么匹配字符串末尾的一个或多个非单词字符”。

于 2012-10-05T16:09:44.960 回答
0

使用 ^ 匹配字符串的开头,使用 $ 匹配字符串的结尾。C# 正则表达式备忘单

于 2012-10-05T16:10:59.670 回答
0

试试这个,

 (^[^\w]*)|([^\w]*$)
于 2012-10-05T16:11:01.807 回答
0

使用 ^ 匹配 'beginning of line' 和 $ 匹配 'end of line',即你的代码应该匹配并删除 ^\W* 和 \W*$

于 2012-10-05T16:11:41.410 回答