Как мне сопоставить определенную строку в C#
Здравствуйте, я ищу регулярное выражение, которое соответствует строке "подпись(10,10,доктор имя фамилия):" что я пытался до сих пор является
Что я уже пробовал:
string pattern = @"signature?\S*\S*\s*[a-zA-ZäÄöÖüÜß]*\)"; string match = @"((Prof. )|(Professor))|(((Dr\. )-Ing\. )|(Dr\. ( [a-zöäü]+\.){0,2})(?!.))|(Dipl\.-[A-Z][a-zöäü]+\.)"; MatchCollection collection = Regex.Matches(searchStr.ToLower(), match, RegexOptions.Multiline);
но это не работает. Есть предложения?
Заранее благодарю вас
Garth J Lancaster
Что на самом деле означает "но это не работает" - мы не можем видеть ваш экран, читать ваши мысли и т. д..
Обычно я использую что-то вроде http://regexstorm.net/tester чтобы проверить регулярное выражение - я получаю это
^подпись\([0-9]{2},[0-9]{2},Доктор\.\s?[a-zA-ZäÄöÖüÜß]*\s?[a-zA-ZäÄöÖüÜß]*\)
как образец для первой попытки.. Кстати, я понятия не имею, что ты пытаешься сделать со своей строкой "матч"
Во-вторых .. вам нужно извлечь части данных, например
Название -&ГТ; доктор
Имя -> Фриц
Фамилия -> Schwarz
?
Если это так, то я предлагаю вам вещь о "именованных захватах" после того, как вы исправите свое основное регулярное выражение - довольно легко найти в google, но по сути
^подпись\([0-9]{2},[0-9]{2},Dr\.\s?(?<FirstName>[a-zA-ZäÄöÖüÜß])*\s?[a-zA-ZäÄöÖüÜß]*\)
Создали бы им захватить под названием "Имя"
В-третьих, используйте многострочные && комментируемые регулярные выражения, когда они нетривиальны
строка regexPattern = @"
^ // Начало строки
подпись //
\( // открывающая скобка
[0-9]{2} // первое число
, ..
[0-9]{2} // второе число
... "
Это не отображается здесь, но выровнено по вкладкам на//, чтобы облегчить чтение .. вам нужно использовать регулярные выражения.Многострочный ..
MatchCollection matches = регулярное выражение.Совпадения(например, regexPattern, RegexOptions.Многострочный);
schindlboeckLi
Привет Гарт,
Спасибо за ваше предложение.
не работает просто означает, что он не соответствует. Твое предложение мне тоже не подходит. С моим "матчем" я как-то пытался получить титул... Вот что я получил в качестве первого результата google
Garth J Lancaster
конечно, но, как и в случае с программным обеспечением в целом, вы должны быть конкретны в своих требованиях, и вы опубликовали только один пример данных "- я не мог понять, что ваша строка соответствия была/что вы пытались с ней сделать - обычно "совпадение" - это результат/результирующий набор-пример, который вы дали, действительно работал в этом инструменте, для шаблона, как я его имел... как говорили другие, используйте такой инструмент, как expresso, разбейте регулярное выражение на маленькие кусочки.. вы, конечно, должны быть в состоянии расширить то, что я должен был включить (проф.|Professor|Dr\.|Dipl\.) или как бы я это сделал (?<title>(Prof\.|Профессор|Доктор\.|Дипл\.))
Надеюсь, что в конце концов вы ее разгадали