仅移除字符串开头和结尾的非字母数字字符

4
我正在尝试使用一个帮助程序(C#)清理一些数据。
我遍历每个字符串,并想要从字符串的开头和结尾删除无效字符,即从 $$$helloworld$$$ 中删除美元符号。
使用这个正则表达式\W可以很好地解决这个问题。
然而,包含无效字符的字符串中间应该保留原样,比如hello$$$$world是正确的,我的正则表达式不应匹配这个特定的字符串。
因此,实际上,我正在尝试找出在字符串的开头和结尾匹配无效字符的语法,但是保留包含无效字符的字符串。
感谢您的帮助!
5个回答

7
这就可以了!
(^[\W_]*)|([\W_]*$)

这个正则表达式表示在开头(^)或者结尾($)匹配零个或多个非单词字符(|)。


3
注意:使用\W将忽略下划线以及字母数字字符,因此类似于*"helloworld"*的内容将保持不变。如果这对提问者产生问题,可以使用[^\W_]代替\W - LukeH

0
以下代码应该可以运行:
^\W+|\W+$

^$是锚点,分别用于匹配字符串的开头和结尾。中间的|表示或者,因此这个正则表达式的意思是“匹配一个或多个非单词字符在字符串的开头,或者匹配一个或多个非单词字符在字符串的结尾”。


0

试试这个,

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

0

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接