1


0

VB.NET:リターン文字を別の文字列に置き換えるために必要な正規表現

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, ",
")
End Function

次の文字のいずれかを検索しようとしましたが、まだ運がありません:+ \ r | \ n | \ r \ c | \ cM | \ x0d

問題は、関数/式がテキスト内のキャリッジリターンを検出していないようで、なぜわからないのですか? 私はテストとして別の式をそこに入れることができるので、関数が機能することを知っています、それは大丈夫です

何か案は?

3 Answer


5


正規表現のない通常の `strInput.Replace(vbCrLf、"、 ")`はどうですか?


4


他の人はすでにあなたの問題に対する良い解決策を提供しています。 一般的な発言として、VB.NETにはC#のような文字列エスケープシーケンス(\ n、\ r、\ t、…​)がないことを説明したいと思います。 VB.NETの文字列リテラルは、http://msdn.microsoft.com/en-us/library/aa691090.aspx [ C#の逐語的文字列リテラル]-エスケープできる唯一の文字は二重引用符です(二重引用符による)。

代わりに、VB定数を使用する必要があります(例: vbCrLf、` vbTab`)または .net constants (e.g. Environment.NewLine) and string concatenation ( " Hello World \ n "の代わりに "Hello World"&vbCrLf`)。


3


どうですか?

Function Blah(ByVal strInput As String) As String
  return strInput.Replace(Environment.NewLine, "
")
End Function