用regex替换反斜杠

本文关键字:替换 regex | 更新日期: 2023-09-27 18:02:59

我有这个字符串

string s = "<textarea>'r'n</textarea>";

我想动态地替换textarea的内容,试着这样做:

Regex regex = new Regex("(<textarea.*?>)(.*)(</textarea>)");
string a = regex.Replace(s, "$1new value$3");

然而,这并没有处理我想要的输出,它应该是:<textarea>new value</textarea>。它只生成

<textarea>
</textarea>

我该如何修复它?

用regex替换反斜杠

使用RegexOptions.SingleLine模式。否则.不匹配换行符。

根据文档:

Singleline单行模式。改变点的含义(.)所以它匹配每一个字符(而不是除了。

' n)。

.*遇到'n时停止。

所以使用RegexOptions.MultiLine选项

或者将正则表达式更改为:

(?m)(<textarea.*?>)(.*)(</textarea>)

(?m)是内联多行修饰符。

编辑:

对不起,应该是RegexOptions.SingleLine。我很困惑,因为我只在javascript中大量使用正则表达式。