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)“-太多了)”