(?:.*)
не нужно - вы ничего не группируете, поэтому .*
означает то же самое. Но это не ответ на ваш вопрос.
Чтобы соответствовать любой строке, которая не содержит другой предопределенные строки (скажем TaggedObjects
), используйте
(?:(?!TaggedObjects).)*
В вашем примере,
index\.php\?page=(?:(?!TaggedObjects).)*&tagID=([0-9]+)$
будет соответствовать
index.php?page=blahblah&tagID=1234
и не будет соответствовать
index.php?page=blahTaggedObjectsblah&tagID=1234
Если вы хотите, чтобы этот матч и только исключить точную строку TaggedObjects
, а затем использовать
index\.php\?page=(?!TaggedObjects&tagID=([0-9]+)$).*&tagID=([0-9]+)$
TaggedObjects? Это строка не должна совпадать? – Jaskirat
Отрицательный взгляд на кого-нибудь? – delnan