Regex 正则表达式匹配所有反斜杠字符,新行、回车等除外
我正在寻找一个正则表达式,将所有反斜杠字符转义为双黑线字符,除了换行符、回车符等 此功能:Regex 正则表达式匹配所有反斜杠字符,新行、回车等除外,regex,vb.net,Regex,Vb.net,我正在寻找一个正则表达式,将所有反斜杠字符转义为双黑线字符,除了换行符、回车符等 此功能: Public Function EscapeInvalidCharacters(ByVal str As String) As String str = str.Replace("\", "\\") ' Backslash str = str.Replace("'", "\'") ' Single quote str = str.Rep
Public Function EscapeInvalidCharacters(ByVal str As String) As String
str = str.Replace("\", "\\") ' Backslash
str = str.Replace("'", "\'") ' Single quote
str = str.Replace("""", "\""") ' Double quote
str = str.Replace(vbNewLine, "\n") ' New line
str = str.Replace(vbCr, "\r") ' Carriage return
str = str.Replace(vbTab, "\t") ' Horizontal tab
str = str.Replace(vbBack, "\b") ' Backspace
str = str.Replace(vbFormFeed, "\f") ' Form feed
Return str
End Function
通过此输入:
"This is a test.\nThis is another test.\n"
错误地生成以下输出:
"This is a test.\\nThis is another test.\\n"
是否可以更改行str=str.Replace(“\”,“\\”)
,这样就不会更改换行符
\(?!r|n|t|b|f)
试试这个。这个应该可以多亏了vks,我想出了这个解决方案:
Public Function EscapeInvalidCharacters(ByVal str As String) As String
'str = str.Replace("\", "\\") ' Backslash
str = Regex.Replace(str, "\\(?!n|r|t|b|f)", "\\")' Backslash
str = str.Replace("'", "\'") ' Single quote
str = str.Replace("""", "\""") ' Double quote
str = str.Replace(vbNewLine, "\n") ' New line
str = str.Replace(vbCr, "\r") ' Carriage return
str = str.Replace(vbTab, "\t") ' Horizontal tab
str = str.Replace(vbBack, "\b") ' Backspace
str = str.Replace(vbFormFeed, "\f") ' Form feed
Return str
End Function
运行这个
Regex.Replace(str,“\(?!r | n | t | b | f)”,“\”
给了我一个参数异常。@bastos.sergio是\n
是一个文本\n
?@Avinash Raj所有\n
的实例都应该被视为一个文本。@vks同样的错误。在粗略地翻译回英语后,信息是“解析”(?!n)“-太多了)”