rt
想验证[].[].[]格式的字符串,并将中括号的内容放到m.Groups中。
现在正则字符串为 \\[(?<1>.*?)\\]\\.\\[(?<2>.*?)\\]\\.\\[(?<3>.*?)\\]
现在的情况是中括号内出现换行符(\n)则不能通过匹配
但第三个中括号内应允许换行符,如出现换行,要把包括换行符在内的中括号内的全部内容存放到m.Groups[2]中。
请问该如何修改
想验证[].[].[]格式的字符串,并将中括号的内容放到m.Groups中。
现在正则字符串为 \\[(?<1>.*?)\\]\\.\\[(?<2>.*?)\\]\\.\\[(?<3>.*?)\\]
现在的情况是中括号内出现换行符(\n)则不能通过匹配
但第三个中括号内应允许换行符,如出现换行,要把包括换行符在内的中括号内的全部内容存放到m.Groups[2]中。
请问该如何修改
解决方案 »
- C#如何控制outlook自动收取邮件?
- 如何利用C#实现图像拉伸处理
- 本地机器上的两个进程,互相发一些短的消息,请问用哪种通信方式好呢?匿名管道,命名管道还是消息机制?原因是什么?好实现吗?
- vs2005类库编译后生成的DLL文件路径
- 业务层中加入事务,使用何种方式?关键词:业务逻辑层、事务
- 询问几个关于DevExpress.XtraGrid.Views.Grid.GridView的问题
- 标题过长问题
- 请教,C#可以编写动态库嘛?
- STREAMREADER 的问题。用过得都来帮助一下。(顶贴有分)
- 困惑,winform中DataGrid的表头行能自定义么?
- 如何把一客户端的richtextbox中设定的字体和颜色发送到另一客户端的richtextbox中?
- 如何用C#在DLL文件中创建共享数据段?
using System.Text.RegularExpressions;class Test
{
static void Main()
{
string s = "XYZ.[ABC].[DEFG].[HI\nJKL].OPQRSTUVW";
string r = @"(?s)\[(.*?)\]\.\[(.*?)\]\.\[(.*?)\]";
Match m = Regex.Match(s, r);
// 如果不使用"(?s)...",就这样用:
// Match m = Regex.Match(s, r, RegexOptions.Singleline);
foreach (Group g in m.Groups)
{
Console.WriteLine(g.Value);
}
}
}
/*
程序输出:
[ABC].[DEFG].[HI
JKL]
ABC
DEFG
HI
JKL
注意,Groups[0]是整个匹配的文本,
Groups[1]-Groups[3]对应第1-3个捕获型括号捕获的内容。
*/
指定单行模式。更改点 (.) 的含义,使它与每一个字符匹配(而不是与除 \n 之外的每个字符匹配)。 也可以在正则表达式前面加上 "(?s)" 表示这个意思。