Hinweis: Das Examples provided are in Python.
Konzept bleibt jedoch dasselbe.
'.'
ist ein übereinstimmendes Symbol, das mit jedem Zeichen außer dem Zeilenumbruchzeichen übereinstimmt (dies kann auch mit re.DOTALL
Argumenten in Python überschrieben werden ). Daher wird es auch als Wildcard bezeichnet .
'*'
ist ein Quantifizierer (definiert, wie oft ein Element vorkommen kann). Ist die Abkürzung für {0,} .
Es bedeutet "Keine oder mehr Treffer" - die Gruppe vor dem Stern kann beliebig oft im Text vorkommen. Es kann ganz fehlen oder immer wieder wiederholt werden.
'?'
ist auch ein Quantifizierer . Ist die Abkürzung für {0,1} .
Es bedeutet "Keine Übereinstimmung mit oder eine Übereinstimmung mit der Gruppe vor diesem Fragezeichen".Es kann auch so interpretiert werden, dass der Teil vor dem Fragezeichen optional ist .
z.B:
pattern = re.compile(r'(\d{2}-)?\d{10}')
mobile1 = pattern.search('My number is 91-9999988888')
mobile1.group()
Output: '91-9999988888'
mobile2 = pattern.search('My number is 9999988888')
mobile2.group()
Output: '9999988888'
Im obigen Beispiel '?' Gibt an, dass die beiden vorangestellten Ziffern optional sind. Sie dürfen nicht oder höchstens einmal vorkommen.
Unterschied zwischen '.' und '?':
'.'
passt / akzeptiert / überprüft einem einzelnen Zeichen für die Stelle, an der es sich im regulären Ausdruck befindet.
z.B:
pattern = re.compile(r'.ot')
pattern.findall('dot will identify both hot and got.')
Output: ['dot', 'hot', 'got']
'?'
Stimmt mit dem Null- oder Einzelvorkommen der Gruppe überein oder überprüft es .
Überprüfen Sie das Beispiel für eine Mobiltelefonnummer.
Gleiches gilt für '*'
. Es werden null oder mehr Vorkommen der vorhergehenden Gruppe überprüft .
Kombination:
'.*'
: Akzeptiert so viele Sequenzen wie verfügbar. Gieriger Ansatz .
'.*?
'Akzeptiert die erste übereinstimmende Sequenz und stoppt. Nicht gieriger Ansatz
Weitere Informationen finden Sie in den folgenden zwei Fragen ...