RegEx help - поиск / возврат кода - PullRequest
0 голосов
/ 10 июля 2009

Должен признать, что прошло несколько лет с моего класса 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 ]

1 голос
/ 10 июля 2009

Я все еще изучаю регулярные выражения, но я нашел это место полезным для получения идей или сравнения того, что я придумал, может ли это помочь в будущем? http://regexlib.com/

0 голосов
/ 10 июля 2009

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

при условии, что вы ничего не делаете со словами после запятых

0 голосов
/ 10 июля 2009

Попробуйте это регулярное выражение:

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);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...