Прежде всего [0-9:0-9]+
не правильно. Как это соответствует 1 или более ди git или двоеточие. Таким образом, он будет соответствовать 123
или просто :
.
Регулярное выражение коррекции будет:
[0-9]+:[0-9]+
Теперь, если вы хотите избежать строки в скобках, используйте отрицательный прогноз (при условии, что все круглые скобки являются сбалансированными и неэкранированными):
[0-9]+:[0-9]+(?![^()]*\))
(?![^()]*\))
- это условие, основанное на отрицательном прогнозировании, которое может дать сбой при совпадении: number:number
сопровождается )
без сопоставления (
и )
.
Обратите внимание, что в r
вы должны будете использовать двойное экранирование:
'[0-9]+:[0-9]+(?![^()]*\\))'
RegEx Demo