2017-12-31 57 views
-2

ich regexp.my regexp lerne ist:Wie erfassen Sie das erste Vorkommen von vordefinierten Eingaben mit regexp?

/^([0-5][0-9]|60):/g 

Meine Beispieldaten ist: 60:40:60 Lua

Alles ist in Ordnung. Jetzt möchte ich das erste Auftreten vor:. d. h .: 60, aber wenn ich versuche, $ 1 zu verwenden. es gibt 6040 zurück. Irgendeine Idee?

+1

Können Sie Ihren Code mit $ 1 teilen? [Testen Sie Regex] (https://regex101.com/r/TzYlgu/1), die erste Gruppe enthält 60. –

+0

Ich versuche, Code zu testen: https://regexr.com/ –

+0

Testen Sie es [ so] (https://regexr.com/3iku4)? –

Antwort

1

Was ist, dass man:

^(?:[0-5][0-9]|60)(?=:) 

Demo

Oder in Ihrer Art und Weise mit Validierung, können Sie versuchen, dass:

^(?:[0-5][0-9]|60)(?=:\d{2}:\d{2}.*) 

Erläuterung:

  1. ^(?:[0-5][0-9]|60) - Gleich wie Ihr
  2. (?=:\d{2}:\d{2}.*) - positive Lookahead, um sicherzustellen, dass das vorherige Muster von 2 digit Doppelpunkt gefolgt gefolgt von Rest der Zeichenfolge von null oder mehr Länge folgt.

Demo 2

Da es, wie es scheint, dient, nicht nach Ihrem Bedarf gibt es eine Lösung, die 3 Gruppen erfasst, wo Gruppe 1 beginnt mit den Ziffern, die Sie sich wünschen:

const regex = /^([0-5][0-9]|60):([0-5][0-9]|60):([0-5][0-9]|60).*$/gm; 
 
const str = `60:40:60 Lua`; 
 
let m; 
 

 
if ((m = regex.exec(str)) !== null) { 
 
console.log(m[1]); 
 
console.log(m[2]); 
 
console.log(m[3]); 
 
}

+0

Ich frage mich, warum ist der Downvote!? –

+0

Nicht mein Downvote, aber das spricht nicht wirklich an, was mit dem Versuch des OPs falsch sein könnte. – tripleee

+0

In welcher Sprache ist der Code? Lua? – tripleee

Verwandte Themen