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#の逐語的な文字列リテラルに似ています。エスケープできる文字は、二重引用符(2倍にすることによる)のみです。

代わりに、VB定数(例:)または.net定数(例)と文字列連結(`" Hello World \ n "の代わりにvbCrLf)を使用する必要があります。vbTabEnvironment.NewLine"Hello World" & vbCrLf

于 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 に答える