正则表达式在2括号,如匹配子[我要这个文本],但离开了括号? [英] Regex to match a substring within 2 brackets, e.g. [i want this text] BUT leave out the brackets?

查看:124
本文介绍了正则表达式在2括号,如匹配子[我要这个文本],但离开了括号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我设法找到了正则表达式来获得几乎我想在这里的结果,即

 正则表达式R1 =新的正则表达式(@\ [(*)\。?]);
字串行= HEADERNAMES [COL1,COL2,COL3,COL4]。
比赛比赛= r1.Match(行);
字符串结果= match.ToString();
 

输出:[COL1,COL2,COL3,COL4];

我知道,那么我就可以使用:

  result.Replace([,);
result.Replace(],);
 

要获得正是我想要的,但我不知道是否有一种方法可以从正则表达式的结果ommi​​t的定界符[和]不执行字符串的方法。

我还以为有使用正则表达式本身??一个更优雅的解决方案

在此先感谢。

解决方案

 正则表达式R1 =新的正则表达式(@\ [(+)\。]);
字串行=HEADERNAMES [COL1,COL2,COL3,COL4];
//正则表达式把捕获组(即间捕获的东西(和))
//在Groups集合
字符串匹配= r1.Match(行).Groups [1] .value的;
//匹配=COL1,COL2,COL3,COL4
 

I've managed to find the Regex to get almost the result I want here i.e.

Regex r1 = new Regex(@"\[(.*?)\]");
string row = HEADERNAMES[COL1,COL2,COL3,COL4];
Match match = r1.Match(row);
string result = match.ToString();

Outputs: "[COL1,COL2,COL3,COL4]";

I know I can then use:

result.Replace("[", "");
result.Replace("]", "");

to get exactly what I want but I was wondering if there was a way to ommit the delimeters [ and ] from the Regex result without performing the String methods.

I would have thought there was a more elegant solution using Regex itself??

Thanks in advance.

解决方案

Regex r1 = new Regex(@"\[(.+)\]");
string row = "HEADERNAMES[COL1, COL2, COL3, COL4]";
// Regex puts capture groups (i.e. things captured between ( and ) ) 
// in Groups collection
string match = r1.Match(row).Groups[1].Value;
//match = "COL1, COL2, COL3, COL4"

这篇关于正则表达式在2括号,如匹配子[我要这个文本],但离开了括号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆