RegEx帮助 - 查找/返回代码

时间:2009-07-10 18:06:19

标签: vb.net regex visual-studio-2008 excel

我必须承认,自我的RegEx课程开始已经有几年了,从那以后,我对它们做了很少的工作。所以我转向SO的脑力。 。

我有一个带有一些数据的Excel电子表格(2007)。我想在其中一个列中搜索模式(这里是RegEx部分)。当我找到匹配项时,我想将找到的匹配项的一部分复制到同一行中的另一列。

源数据的样本包含在下面。每行代表源中的一个单元格。

我正在寻找一个匹配“abms feature = XXX”的正则表达式,其中XXX是一个变量长度的单词 - 其中没有空格,我认为所有的字母字符。找到匹配后,我想抛出匹配的“abms feature =”部分,并将代码(XXX部分)放入另一列。

我可以处理excel编码部分。我只需要正则表达式的帮助。

如果您可以提供完全在Excel中执行此操作的解决方案 - 无需编码,只需使用本机excel公式和命令 - 我也希望听到这一点。

谢谢!

###################################  
Structure
abms feature = rl

abms feature = sta

abms feature = pc, pcc, pi, poc, pot, psc, pst, pt, radp
font = 5               abms feature = equl, equr


abms feature = bl

abms feature = tl

abms feature = prl





font = 5
###################################

3 个答案:

答案 0 :(得分:1)

我自己仍在学习正则表达式,但我发现这个地方对于获取想法或比较我想出的东西很有用,将来可能会有所帮助吗? http://regexlib.com/

答案 1 :(得分:0)

试试这个正则表达式:

  

abms feature = (\w+)

以下是如何从捕获组中提取值的示例:

using System;
using System.Text.RegularExpressions;

class Program
{
    static void Main()
    {
        Regex regex = new Regex(@"abms feature = (\w+)",
            RegexOptions.Compiled |
            RegexOptions.CultureInvariant |
            RegexOptions.IgnoreCase);

        Match match = regex.Match("abms feature = XXX");

        if (match.Success)
        {
            Console.WriteLine(match.Groups[1].Value);
        }
    }
}

答案 2 :(得分:0)

(?<=^abms feature = )[a-zA-Z]*

假设你没有用逗号后的单词做任何事情

相关问题