Ниже приведена моя коллекция строк, которая относится к пути от начала до конца, каждый элемент, такой как ABC < /code>, является городским терминалом: < /p>
"ABC-DEF-MNO-JKL-LOO"
"BYT-JKU-PLO-MNO"
"DEF-BYT-IOT-POC-LOO"
"LMN-RTX-PQS-JYY"
"LMN-PQS-IRJ"
< /code>
Я разработал следующие шаблоны Regex, чтобы позаботиться о требованиях к бизнесу: < /p>
Требование1 - Начните с ABC или DEF, пройти через MNO или BYT, заканчивайте LOO, JYY, IRJ < /cod> < /p>
Pattern 1 - `@"(^ABC|^DEF).*(MNO|BYT).*(LOO$|JYY$|IRJ$)";`
Result 1 - "ABC-DEF-MNO-JKL-LOO", "DEF-BYT-IOT-POC-LOO"
< /code>
Требование2 - Начните с ABC или DEF, пройти через MNO или BYT, исключить маршрут с IOT и заканчивать с LOO, JYY, IRJ < /code> < /p>
Expected Result - "ABC-DEF-MNO-JKL-LOO", since the other route has IOT
Expected Pattern - `@"(^ABC|^DEF).*(MNO|BYT).*^(IOT).*(LOO$|JYY$|IRJ$)";`
< /code>
Но этот не может дать какой -либо результат < /p>
Successful Pattern - `@"(^ABC|^DEF).*(MNO|BYT.*^(IOT)).*(LOO$|JYY$|IRJ$)";`
< /code>
Однако я не убежден, это правильный способ его достижения, может ли кто -нибудь помочь в понимании: < /p>
Почему ожидаемый шаблон не помогает приносить правильный результат, я не могу понять, что не так < /li>
Предложить лучшее обычное выражение. /> edit 1: < /strong> < /p>
на основе ответа, предоставленного @sebastian, следующая шаблона также достигает успеха: < /p>
@"^(?:ABC|DEF).*(?:MNO|BYT)(?!.*IOT).*(?:LOO|JYY|IRJ)$"< /code> < /p>
Но следующий шаблон не удастся, когда есть только дополнительное.*< /code> < /p>
@"^(?:ABC|DEF).*(?:MNO|BYT).*(?!.*IOT).*(?:LOO|JYY|IRJ)$"
Ниже приведена моя коллекция строк, которая относится к пути от начала до конца, каждый элемент, такой как ABC < /code>, является городским терминалом: < /p>
Однако я не убежден, это правильный способ его достижения, может ли кто -нибудь помочь в понимании: < /p>
Почему ожидаемый шаблон не помогает приносить правильный результат, я не могу понять, что не так < /li> Предложить лучшее обычное выражение. /> edit 1: < /strong> < /p>
на основе ответа, предоставленного @sebastian, следующая шаблона также достигает успеха: < /p>