Ich brauche Dinge anzupassen, dass Format etwas entlang der Linien von 657432-76, 54678-01, 54364 A -12Regular Expression mit dem Buchstaben
Ich habe (r'^\d{6}-\d{2}$')
und (r'^\d{5}-\d{2}$')
aber wie man bekommt der Buchstabe?
danke !!
Ich brauche Dinge anzupassen, dass Format etwas entlang der Linien von 657432-76, 54678-01, 54364 A -12Regular Expression mit dem Buchstaben
Ich habe (r'^\d{6}-\d{2}$')
und (r'^\d{5}-\d{2}$')
aber wie man bekommt der Buchstabe?
danke !!
Wenn Sie eine einzelne Regex das dritte Muster passen Sie einen regulären Ausdruck wie folgt verwenden können:
(?i)(r'^\d{5}[a-z]-\d{2}$')
Wenn Sie jedoch eine einzelne Regex für alle haben wollen sie könnten für Sie nützlich:
(?i)(r'^\d{5-6}[a-z]?-\d{2}$')
beachten Sie, dass dies ermöglicht: 657432A-76
aber wenn Sie jus t wollen 5 Ziffern nur mit dem Buchstaben, dann könnten Sie verwenden:
(?i)(r'^\d{5}(?:\d?|[a-z])-\d{2}$')
für die Buchstaben [a-zA-Z]
verwenden, und wenn es nur oberer Fall ist, dann [A-Z]
ausreichend.
es scheint das Muster generisch ist 6 Zeichen mit möglichen Buchstaben oder Zahlen zuletzt char max dann dann 2 Zahlen? so dann würden Sie dieses Muster verwenden
pattern = r'^d{5}.+-\d{2}$'
Wie dieser Ausdruck:
>>> re.search(r'^\d+[A-Z]?-\d+$','657432A-76')
<_sre.SRE_Match object; span=(0, 10), match='657432A-76'>
>>>
>>> re.search(r'^\d+[A-Z]?-\d+$','657432-76')
<_sre.SRE_Match object; span=(0, 9), match='657432-76'>
>>>
>>> re.search(r'^\d+[A-Z]?-\d+$','65743-76')
<_sre.SRE_Match object; span=(0, 8), match='65743-76'>
>>>
Oder wenn das Format ist wie:
[At most six digits][Possibility of a letter][-][At most two digits]
Dann:
>>> re.search(r'^\d{,6}[A-Z]?-\d{,2}$','65743A-76')
<_sre.SRE_Match object; span=(0, 9), match='65743A-76'>
>>>
>>> re.search(r'^\d{,6}[A-Z]?-\d{,2}$','657436-76')
<_sre.SRE_Match object; span=(0, 9), match='657436-76'>
Hier ist ein möglicher Kandidat alle Proben passend:
import re
samples = [
"657432-76",
"54678-01",
"54364A-12"
]
for s in samples:
print re.match(r'^(\d+[A-Z]?)-(\d+)$', s).groups()
Kombinieren Sie sie mit '^ \ d {5,6} - \ d {2} $' Mit dem optionalen Brief seine '^ \ d {5 , 6} [AZ]? - \ d {2} $ ' – sln
Versuchen Sie ['^\ d {5} (?: \ D? | [AZ]) - \ d {2} $ '] (https: // regex101.com/r/gE4cM8/1). Hängt davon ab, was du eigentlich meinst. Ein anderes - '^ \ d {5} \ w? - \ d {2} $' –
@DavideVisentin: [es tut] (https://regex101.com/r/gE4cM8/2) –