c# - 使用 ".*"和 $1 用正则表达式替换文本

标签 c# regex

string pattern = @"<p>.*<br>";
Regex r = new Regex(pattern, RegexOptions.IgnoreCase);
r.Replace(pattern, "<p>$1</p>");

上面的代码应该查找并替换以下<p><br>标签为 <p><p>同时将文本保留在它们之间。这将取代 <p><br>但会用“$1”代替中间的相应文本。我习惯用Python编写RE,这似乎有很大不同。

最佳答案

需要解决的问题:

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

固定代码:

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

关于c# - 使用 ".*"和 $1 用正则表达式替换文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20222498/

相关文章:

c# - 无法从Docker ASP.NET Core 3.1连接到Docker SQL Server

c# - 嵌套属性不会设置 "Stay"

c# - 如何在C#中发送数组副本

regex - 在使用 Perl 进行搜索和替换期间,如何附加而不是替换文本?

regex - 小调整让这个正则表达式让它做我想做的事

mysql - LEFT JOIN 表和 REGEXP 特定字符的 SUM 值

c# - 每三次迭代 C#

c# - 如何确定 MigraDoc 表是否会拆分为两页?

regex - egrep搜索空格

Java 正则表达式使用变量输入和字符串输入给出不同的结果