ich ein paar verschiedene String-Kombinationen haben und ich versuche Ergebnisse in diesem Format zurück:javascript regex - Rückgabewert, es sei denn, gefolgt von oder voran mit
[0-9]{1,3}GB
wenn sie nicht von SD
irgendwo in der Zeichenfolge vorangestellt ist, oder gefolgt von RAM
irgendwo in der Zeichenfolge.
So:
8 GB
zurückkehren sollte: 8 GB
8 GB RAM
zurückkehren sollte:
SD Card 8 GB
zurückkehren sollte:
microSD, up to 32 GB
zurückkehren sollte:
16 GB
sollte zurückgeben: 16 GB
Diese (([0-9]{1,3}GB)(?!\s+RAM)(?!SD))
funktioniert nicht mit Javascript-basierten Regex.
Irgendwelche Ideen, wo ich anfangen soll?
Ich bin nicht sicher, Regex ist in der Lage, negative Übereinstimmungen für Strings beliebiger Länge zu tun. IMO sollten Sie eine erste Runde machen, in der Sie alle Zeichenfolgen auslesen, die mit 'SD. * \ D {1,3}? GB' und' \ d {1,3}? GB. * RAM' übereinstimmen, und dann '(\ d {1,3}? GB) 'in der resultierenden String-Liste. – Siguza
Erwarten Sie, dass eine Eingabezeichenfolge eine einzelne oder mehrere Übereinstimmungen enthält? Siehe https://regex101.com/r/qO8xN1/2 –
Keine dieser Zeichenfolgen entspricht '[0-9] {1,3} GB'. – melpomene