【问题标题】:Find and replace "$$" with regex.replace用 regex.replace 查找并替换 "$$"
【发布时间】:2014-05-16 21:34:40
【问题描述】:

我有一些代码使用双美元符号来表示注释行。我需要在其中一些注释行之前添加一些文本。我的目标是搜索那些像“$$ Comment”这样的 cmets,并用这样的东西替换,“Prior line”&vbNewLine&“$$ Comment”。我可以通过使用 Regex.Escape() 转义我的搜索词“$$ Comment”来找到它,并将其修改为此; “\$\$\ 评论”。但是,由于方法的性质,当我将此转义字符串传递给 Regex.Replace() 时产生的替换字符串是一美元; “$ 评论”。在使用 Regex.Replace 或 String.Replace 时,“$$”总是被替换为“$”的方式是否有解决方法?

【问题讨论】:

  • 这是什么语言(正则表达式除外)?
  • 请用语言(VB.Net?)标记您的问题并显示您尝试编写的代码。

标签: regex vb.net string replace escaping


【解决方案1】:

在替换字符串中,您使用另一个美元符号转义美元符号:"$$$$ Comment"ref

或者,您可以捕获组 (\$\$ Comment) 中的评论并使用替换字符串中的组引用来恢复它:"$1"

【讨论】:

  • 谢谢,正是我需要的! Dim myRegex As New Regex(escapedSearchRegex) Dim Result As String = myRegex.Replace(RichTextBox3.Text, ReplaceText) '修复双美元替换 Dim pattern As String = "^\$\ " Dim replacement As String = "$$$ " Dim Result2 As String = Regex.Replace(Result, pattern, replacement,RegexOptions.Multiline)
猜你喜欢
  • 2011-02-19
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 2021-05-28
  • 1970-01-01
  • 2013-02-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多