首先,这是一个非常常见的主题的重复,但我有具体的问题,我在这里和其他地方在网上发现的一切似乎都没有改变我的结果,所以我发布了。希望有人可以快速浏览一下并告诉我我做错了什么......
尝试使用REGEX.Replace从索引搜索中删除文件名和blurbs中的奇数字符。我需要保留句号,下划线和连字符......基本上我知道我需要的唯一字符是双引号,<和s> ...所以这里是一行代码......
Dim replaced As String = System.Text.RegularExpressions.Regex.Replace(str, "[^A-Za-z0-9_. ]+", " ")
它仍在过滤掉句号,连字符和下划线。不知道为什么。我已经尝试在符号之前添加\字符,没有变化......所以就像JS.Slider作为JS Slider回来一样,无论我在网上哪个奇怪的示例表达式...都可以有人真正简要解释正则表达式是如何工作的(特别是我怎么弄错了)或解释一个快速的过滤方式而不会丢失句号等?
答案 0 :(得分:1)
您可以尝试使用space
和dot
unicode字符:
ResultString = Regex.Replace(SubjectString, "[^\w\u002E\u0020\u00A0]+", "X")
正则表达式解释:
[^\w\u002E\u0020\u00A0]+
Match a single character NOT present in the list below «[^\w\u002E\u0020\u00A0]+»
Between one and unlimited times, as many times as possible, giving back as needed (greedy) «+»
A word character (letters, digits, and underscores) «\w»
Unicode character U+002E «\u002E» (dot)
Unicode character U+0020 «\u0020» (space)
Unicode character U+00A0 «\u00A0» (space)
答案 1 :(得分:0)
删除这些字符"<>
执行此操作
Dim ResultString As String
Try
ResultString = Regex.Replace(SubjectString, "[""<>]", "", RegexOptions.Multiline)
Catch ex As ArgumentException
'Syntax error in the regular expression
End Try