Мне нужно сопоставить любую последовательность из 9 цифр или более, которой не предшествует ИЛИ , за которой следуют 2 заглавные буквы, где угодно в тексте:
OG237338070BR // should NOT match
og237338070br // should match
oG237338070bR // should match
G237338070BR // should match
OG237338070B // should match
G237338070B // should match
asd OG237338070BR asd // should NOT match
asd G237338070BR asd // should match
asd OG237338070B asd // should match
asd OG237338070Basd asd // should match
asd OG237338070BRasd asd // should NOT match
Я безуспешно пытался следующее:
(?![A-Z]{2}(\d{9,})[A-Z]{2})(\d{9,})
Этот игнорирует отрицательный взгляд, просто потому, что он может начаться где угодно
Благодаря сочетанию Negative Lookahead и Negative Lookbehind я смог выполнить операцию AND, но не операцию OR:
(?<![A-Z]{2})(\d{9,})(?![A-Z]{2})
Эта комбинация соответствует, только если ей не предшествуют 2 заглавные буквы И не сопровождается 2 заглавными буквами
Итак, вопрос: возможно ли это только с помощью Regex?
Информация:
1 - целевой движок. Net, поэтому я могу использовать отрицательный вид сзади переменной длины.
2 - я не могу использовать start string
и end string
якоря (по крайней мере, я думаю, что я не могу), потому что мое совпадение может быть где угодно в строке и даже может происходить несколько раз в одной строке (текст).
3 - Это не дубликат Я не мог нигде найти условие ИЛИ с предшествующими и последующими последовательностями / строками. Самым близким, кого я нашел, был кто-то, кто пытался сопоставить шаблон, за которым не следовал символ, и он / она мог использовать начальные и конечные якорные строки.
4 - То, что я уже нашел и попробовал:
Соответствует только в том случае, если перед ним не стоит или не следует ди git
javascript регулярное выражение, слово не следует и не предшествует конкретному c char
Регулярное выражение - строка соответствия, не предшествующая другой строке (JavaScript)
Шаблон соответствия, которому не предшествует символ
Регулярное выражение совпадает с точным словом, которому не предшествуют или не следуют другие символы
https://superuser.com/questions/477463/is-it-possible-to-use-not-in-a-regular-expression-in-textmate
Regex: соответствовать всем но указать c шаблон
регулярное выражение: сопоставить все, кроме одного слова