Причина, по которой вы подходите на cont cont ItextI /cont
, заключается в том, что регулярное выражение соответствует первой части вашего шаблона cont
на первом "cont", а затем использует неохотный .*?
, чтобы поглотить пробел, следующий cont и пробелпредшествующий ItextI
.Когда он достигает ItextI
, он распознает I
как соответствующий следующей части шаблона и продолжает с остальным регулярным выражением.Как пишет Minitech, это потому, что регулярное выражение работает с начала строки и находит самое раннее возможное совпадение.
Если вы можете делать предположения относительно пробела, вы можете написать:
cont\s+I(.*?)I\s+/cont
Это будет соответствовать в вашем примере выше.