0

我不能很好地阅读正则表达式,并且继承了一些我试图解释的代码。我有两个问题。

首先,您能解释一下正则表达式模式的各个部分在做什么吗?

其次,我们有一个问题,省略号字符被此代码替换为空格,我们希望保留省略号。语句中需要更改哪些内容以保留省略号?

Dim Test As String = "Test...test" 'this is three dots and not an ellipsis, but just as an example
Dim NotGoodCharacters As String = "[^\w\,<>:;~`@#$%^&*()_=+\-{}|[\]\\?/! ""'']"
Return System.Text.RegularExpressions.Regex.Replace(Test, NotGoodCharacters, " ")

非常感谢。

4

2 回答 2

2

这是替换不在集合中的任何字符:

\w\,<>:;~@#$%^`&*()_=+-{}|[]\?/! ""'' 

有一个空格。每当您看到正则表达式匹配任何不是和[^...]之间的字符之一的字符时。匹配任何单词字符,匹配逗号,匹配反斜杠。我猜椭圆不是这些字符,所以它会被剥离是有道理的。[^]\w\,\\

更新:

在@Alan 的评论之后,我注意到更多应该解释的内容。\-匹配破折号,\]匹配右方括号。

如果您想排除椭圆,您可以尝试将您的正则表达式更改为:

Dim NotGoodCharacters As String = "[^\w\,<>:;~`@#$%^&*()_=+\-{}|[\]\\?/! ""''\x85]"

与水平省略号的\x85ascii 代码匹配。

于 2012-06-05T15:22:23.823 回答
-1

这是一个不错的小闪存工具,可帮助您构建正则表达式。 正则表达式

于 2012-06-05T15:32:34.100 回答