У меня есть мои коды регулярных выражений, чтобы разобрать это на моем теле электронной почты.Regex не правильно разбирается в теле письма
Building: {building number} // new line
Level: {level of building} // new line
Phase: {phase or room number} // new line
Request: {your request}
Пример:
Building: 1
Level: 2
Phase: 20
Request: Get 4 chairs
Вот мое регулярное выражение:
string re1 = "(Building)"; // Word 1
string re2 = "(:)"; // Any Single Character 1
string re3 = "(\\s+)"; // White Space 1
string re4 = "(\\d)"; // Any Single Digit 1
string re5 = "(\\n)"; // White Space 2
string re6 = "(Level)"; // Word 2
string re7 = "(:)"; // Any Single Character 2
string re8 = "(\\s+)"; // White Space 3
string re9 = "(\\d)"; // Any Single Digit 2
string re10 = "(\\n)"; // White Space 4
string re11 = "(Phase)"; // Word 3
string re12 = "(:)"; // Any Single Character 3
string re13 = "(\\s+)"; // White Space 5
string re14 = "(\\d+)"; // Integer Number 1
string re15 = "(\\n)"; // White Space 6
string re16 = "(Request)"; // Word 4
string re17 = "(:)"; // Any Single Character 4
string re18 = "(\\s+)"; // White Space 7
string re19 = "(\\s+)"; // Match Any
Regex r = new Regex(re1 + re2 + re3 + re4 + re5 + re6 + re7 + re8 + re9 + re10 + re11 + re12 + re13 + re14 + re15 + re16 + re17 + re18 + re19, RegexOptions.Multiline);
Match m = r.Match(body);
if (m.Success) {
blah blah blah
} else {
blah blah
}
Проблема даже если формат (электронная почта тело) является правильным, он по-прежнему не соответствует моему регулярному выражению, и это не хранящиеся в моей базе данных.
Правильно ли мое регулярное выражение?
Последняя часть re19 - конечно, вы хотите. * Not \\ s + – BugFinder
Кроме того, используйте 'RegexOptions.Singleline' вместо Multiline – bkdev
Вы также можете использовать' '(\\ s)" 'вместо' (\\ n) "' для 'Белого пространства 2,4,6';). –