1

我正在尝试用字符串替换从 Windows 窗体中的多行文本框获得的字符串中的所有回车符,", <BR>"以便当我在某些 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

问题似乎是函数/表达式没有检测到文本中的任何回车,我不知道为什么?我知道该函数有效,因为我可以在其中放一个不同的表达式作为测试,没关系

有任何想法吗?

4

3 回答 3

5

没有正则表达式的正常情况如何strInput.Replace(vbCrLf,",<BR>")

于 2010-01-21T08:47:50.403 回答
4

其他人已经为您的问题提供了很好的解决方案。作为一般评论,我想解释一下 VB.NET 没有像 C# 那样的字符串转义序列(\n、\r、\t、...)。VB.NET中的字符串文字类似于C# 中的逐字字符串文字——唯一可以转义的字符是双引号(通过加倍)。

相反,您必须使用 VB 常量(例如vbCrLf, vbTab)或 .net 常量(例如Environment.NewLine)和字符串连接("Hello World" & vbCrLf而不是 `"Hello World\n")。

于 2010-01-21T08:55:57.567 回答
3

怎么样:

Function Blah(ByVal strInput As String) As String
  return strInput.Replace(Environment.NewLine, "<br />")
End Function
于 2010-01-21T08:48:23.163 回答