我正在尝试使用字符串", <BR>"
替换从Windows窗体中的多行文本框获取的字符串中的所有回车符,这样当我在某些HTML中使用该字符串时,它会正确显示。
Function Blah(ByVal strInput As String) As String
Dim rexCR As Object
rexCR = CreateObject("VBScript.RegExp")
rexCR.Pattern = "\r"
rexCR.Global = True
Blah = rexCR.Replace(strInput, ",<BR>")
End Function
尝试搜索以下任何字符但仍然没有运气:
\r|\n|\r\c|\cM|\x0d
问题似乎是函数/表达式没有检测到文本中的任何回车,我不明白为什么? 我知道这个函数是有效的,因为我可以在其中放置一个不同的表达式作为测试,它没关系
有什么想法吗?
答案 0 :(得分:5)
没有正则表达式的正常strInput.Replace(vbCrLf,",<BR>")
怎么样?
答案 1 :(得分:4)
其他人已经为您的问题提供了很好的解决方案。作为一般性评论,我想解释说VB.NET没有像C#那样的字符串转义序列(\ n,\ r,\ t,...)。 String literals in VB.NET与verbatim string literals in C#类似 - 唯一可以转义的字符是双引号(通过加倍)。
相反,您必须使用VB常量(例如vbCrLf
,vbTab
)或.net常量(例如Environment.NewLine
)和字符串连接("Hello World" & vbCrLf
而不是` “Hello World \ n”)。
答案 2 :(得分:3)
怎么样:
Function Blah(ByVal strInput As String) As String
return strInput.Replace(Environment.NewLine, "<br />")
End Function