我正在使用C#交互工具,并且以下是设置:
#r "System.Text.RegularExpressions"
using System.Text.RegularExpressions;
string s = "Number 42" + Environment.NewLine + "and 1 number 3";
我想在每行末尾或字符串末尾的所有数字周围添加括号(42和3都应该被括起来)。
注意:在我的系统上,Environment.NewLine是\r\n。
因此我尝试Regex.Replace(s, "(\\d+)$", "[$0]", RegexOptions.Multiline),但只有3被包裹了。
如果我执行Regex.Replace(s, "(\\d+)\r?$", "[$0]", RegexOptions.Multiline),两个数字都被包装,但一个括号内有额外的\r。所以正则表达式引擎相信Environment.NewLine是\n。
是否有单独为正则表达式设置Environment.NewLine的选项?如果有,那么如何设置?
$
只寻找\n
,但Environment.NewLine
是\r\n
,所以(\\d+)$
不足以匹配,因为\r
会干扰匹配。 - MonkeyZeus