【问题标题】:Replacing text with regex using ".*" and $1使用 ".*" 和 $1 用正则表达式替换文本
【发布时间】:2013-11-26 16:25:11
【问题描述】:
string pattern = @"<p>.*<br>";
Regex r = new Regex(pattern, RegexOptions.IgnoreCase);
r.Replace(pattern, "<p>$1</p>");

上面的代码应该找到并用&lt;p&gt;&lt;p&gt; 替换下面的&lt;p&gt;&lt;br&gt; 标记,同时保留它们之间的文本。这将替换&lt;p&gt;&lt;br&gt;,但会将中间替换为“$1”而不是适当的文本。我习惯用 Python 写 RE,这似乎完全不同。

【问题讨论】:

  • 这在 Python 中也行不通。你需要 ()
  • 我尝试使用 (.*)。结果是 (.*)。
  • 我做了,应该是什么样子?
  • 添加了答案...在 Python 中应该几乎相同。
  • 这是我尝试的第一种方式。它不起作用。

标签: c# regex


【解决方案1】:

要解决的问题:

  • 在模式中添加()以获取捕获组
  • 将输入传递给替换方法
  • 将结果存储在变量中(注意:C# 字符串是不可变的)。

固定代码:

string pattern = @"<p>(.*)<br>";
Regex rgx = new Regex(pattern);
string output = rgx.Replace(input, "<p>$1</p>");

【讨论】:

  • @NoahR 也许是固定的,未经测试。
猜你喜欢
  • 2017-10-18
  • 2011-05-09
  • 2023-01-11
  • 1970-01-01
  • 2022-08-19
  • 2014-03-11
相关资源
最近更新 更多