正则表达式查找数字并在段落中用括号括起来
Posted
技术标签:
【中文标题】正则表达式查找数字并在段落中用括号括起来【英文标题】:Regex to find numbers and parenthesize them in a passage 【发布时间】:2011-11-20 03:57:18 【问题描述】:鉴于以下段落:
Lorem ipsum dolor sit amet 1, consectetur adipiscing elit。塞德莫利斯 2. Varius enim in temp. Vivamus vel rutrum lacus。多内奇 ullamcorper purus。 Nullam blandit tincidunt mattis。 Nunc imperdiet nunc vel dolor 3 - dignissim semper。 Cras blandit laoreet nisl 坐 amet faucibus。 Sed porta、nisl ut molestie ultrices、libero metus scelerisque nibh,non imperdiet lectus sapien a lorem。菜素 10 adipiscing erat, eget consectetur massa ultrices eget。整数狮子座 est,faucibus eu 24interdum eget,auctor bibendum ligula。奎斯克 luctus lectus vitae leo semper gravida。 Cras et pulvinar leo。纳拉 tristique98 ipsum ac urna luctus molestie。
我应该使用什么正则表达式来查找其中的数字并在它们周围加上括号。
【问题讨论】:
Regex 看起来像gr/\d+/[$1]/
,但我没有在 c# 中使用它们,所以我不能告诉你确切的解决方案。
【参考方案1】:
试试这个:
var data = "Lorem ipsum dolor sit amet 1, consectetur adipiscing elit. Sed mollis 2. Varius enim in tempor. Vivamus vel rutrum lacus. Donec quis ullamcorper purus. Nullam blandit tincidunt mattis. Nunc imperdiet nunc vel dolor 3 - dignissim semper. Cras blandit laoreet nisl sit amet faucibus. Sed porta, nisl ut molestie ultrices, libero metus scelerisque nibh, non imperdiet lectus sapien a lorem. Sed elementum 10 adipiscing erat, eget consectetur massa ultrices eget. Integer leo est, faucibus eu 24interdum eget, auctor bibendum ligula. Quisque luctus lectus vitae leo semper gravida. Cras et pulvinar leo. Nulla tristique98 ipsum ac urna luctus molestie.";
var newData = Regex.Replace(data, @"(\d+)", "($1)");
Console.WriteLine(newData);
【讨论】:
【参考方案2】:使用此代码
string strRegex = @"(?<num>\d+)";
RegexOptions myRegexOptions = RegexOptions.Multiline;
Regex myRegex = new Regex(strRegex, myRegexOptions);
string strTargetString = @"You text with 4 numbers";
string strReplace = @"""$num""";
return myRegex.Replace(strTargetString, strReplace);
【讨论】:
以上是关于正则表达式查找数字并在段落中用括号括起来的主要内容,如果未能解决你的问题,请参考以下文章