Я написал 2 RE, чтобы соответствовать нескольким строковым последовательностям в String. например. допустим, что два регулярных выражения: RE1
, RE2
. Строки могут быть в этих четырех формах:
1) Match ONLY RE1 'one or more times' 2) Match ONLY RE2 'one or more times' 3) Match RE1 'one or more times' AND match RE2 'one or more times' 4) Match NEITHER RE1 NOR RE2
В настоящее время я использую if
для проверки каждого из них, но я знаю его очень дорого, поскольку я выполняю сопоставление для конкретной строки несколько раз. Я думал об использовании 'или' |
, но проблема с этим - это регулярное выражение, которое перестанет совпадать, если оно найдет первую совпадающую последовательность и не будет продолжать находить других. Я хочу найти соответствующие последовательности "один или несколько раз".
Update:
eg: RE1 = (\d{1,3}[a-zA-Z]?/\d{1,3}[a-zA-Z]?) RE2 = (\babc\b) String: *some string* 100/64h *some string* 120h/90 *some string* abc 200/100 abc *some string* 100h/100f Matches: '100/64h', '120h/90', 'abc', '200/100', 'abc', '100h/100f'
Как я могу объединить эти 2 RE, чтобы сделать мою программу эффективной. Я использую python для кодирования этого.