-
Regulärer Ausdruck:
Mit regulären Ausdrücken können Benutzer mithilfe einer Reihe von Sonderzeichen ein Übereinstimmungsmuster erstellen und das Übereinstimmungsmuster dann mit Zielobjekten wie Datendateien, Programmeingaben und Formulareingaben auf WEB-Seiten vergleichen, je nachdem, ob das Vergleichsobjekt die Übereinstimmung enthält Muster, führen Sie das entsprechende Programm aus. Regularity hat aufgrund seiner Einfachheit, Praktikabilität und Geschwindigkeit die Liebe von Programmierern gewonnen. 
Einige Gedanken zum Schreiben von Regex:
1. Legen Sie zunächst die Regeln fest. Welche Art von Saite benötigen Sie passend, aus welchen Teilen besteht sie und welche Eigenschaften hat sie?
2. Schlagen Sie die kleinste Einheit vor. Manchmal werden einige übereinstimmende Regeln wiederholt. Wir können versuchen, gemeinsame Punkte zu finden und sie in einer Regel zu planen.
3. Schreiben Sie die regulären Regeln einzeln entsprechend ihren Regeln und kleinsten Einheiten auf.
4. Vereinheitlichen Sie die Kombination dieser Einheitsregelmäßigkeiten, um die gewünschte vollständige Regelmäßigkeit zu bilden.
Hier müssen wir einige grundlegende Tags und deren Verwendung verstehen. Alle Regeln bestehen aus grundlegenden Tags. Das reguläre Markup ist ebenfalls sehr einfach, sodass Sie es genauso gut verstehen können.
Häufig verwendete Tags in regulären Ausdrücken
1 Häufig verwendete Markierungen in regulären Ausdrücken 2 ^ |. Anfang einer Zeile oder Zeichenfolge 4 . Wortzeichen (Zahlen, Buchstaben oder Unterstriche) Nicht-Wort-Zeichen 7 d |. Zahlen (entspricht [0-9]) 8 D |. Anfang der Zeichenfolge 11 Z | Ende der Zeichenfolge 13 14 s |. Nicht-Leerzeichen 16 17 b |. Wortgrenze (außerhalb von []) 18 B |. ] |. Jedes Zeichen in der Menge, mit einem Bindestrich in der Mitte, stellt einen Bereich dar, wie zum Beispiel: [0-9], [az]21? 25 * |. Null oder mehr vorherige Ausdrücke 26 * |. Null oder mehr vorherige Ausdrücke (nicht gierig) 28 + |. |. mn vorherige Ausdrücke 30 {m,n}? |. mn vorherige Ausdrücke (nicht gierig) 31 32 33 Auch {?=} { ?!} (?>) (?#) (?imx-imx) usw.
Das einfachste Beispiel:
1 # Passt den gesamten String an 2 puts /ruby/ =~ "ruby" # 0 3 puts /ruby/ =~ "Ruby" # nil 4 5 # Passt den Anfang und das Ende einer Zeile oder eines Strings an 6 str = "abcdef" 7 puts str 8 puts /^abc/ =~ str # 0 9 puts /def$/ =~ str # 310 11 str = "abcndefn" 12 puts /^abc/ =~ str # 013 puts /def$/ =~ str # 414 puts /abc/ =~ str # 015 puts /def/ =~ str # 416 17 #Passen Sie den Anfang und das Ende der Zeichenfolge selbst an 18 str = "abcndefn" 19 puts /Aabc/ =~ str # 020 puts /defZ/ =~ str # 421 puts /defz/ =~ str # nil22 23 #Match Wortzeichen 24 puts "Match Word Characters" 25 Muster = /w/26 Puts Muster = ~ "abc " # 027 puts pattern =~ "." # nil28 29 # Match integer 30 # d Number 31 # D Non-number 32 puts "Match number" 33 puts /d/ =~ "122" #034 puts /D / =~ "122" #nil35 puts /D/ =~ "abc" #036 37 38 #Border 39 str = "Das ist dein Freund!"40 puts str41 puts str.gsub(/b/ ,"|" ) # |Das|. |dein|!42 puts str.gsub(/B/,"-") # Das ist dein Freund!-43
Qualifier-Instanz
1 puts „qualifier“ 2 puts „qualifier: *“ 3 puts /(abc)*/ =~ „a“ # 0 4 puts /(abc)*/ =~ „abc“ # 0 5 6 7 puts „qualifier Qualifier: +" 8 puts /(abc)+/ =~ "a" # nil 9 puts /(abc)+/ =~ "abc" # 010 11 puts "Qualifier: ?" 12 puts /(abc)?/ =~ " c" # 013 puts /(abc)?/ =~ "abc" # 014 15 16 puts "Qualifier: {n}"17 puts /(abc){2}/ =~ "abc" # nil18 puts /(abc) {2}/ =~ "abcabc" # 019 20 puts "Qualifier: {n,}"21 puts /(abc){2,}/ =~ "abc" # nil22 puts /(abc){ 2,}/ = ~ "abcabc" # 023 24 puts "Qualifier: {n,m}"25 puts /(abc){2,3}/ =~ "abc" # nil26 puts /(abc){2, 3}/ =~ " abcabcabc" # 027 28 puts "Qualifier: *?" 29 puts /(abc)*?/ =~ "a" # 030 puts /(abc)*?/ =~ "abcabc" # 031 32 puts "Qualifier: +? " 33 puts /(abc)+?/ =~ "a" # nil34 puts /(abc)+?/ =~ "abcabc" # 035 36 puts "Qualifier: ??"37 puts /(abc)??/ = ~ "a" # 038 puts /(abc)??/ =~ "abcabc" # 039 40 41 #match, {1} {3}42 # {3} kann übereinstimmen, dann wird {1} definitiv übereinstimmen, aber das umgekehrt ist nicht wahr 43 # Übereinstimmungsbereich: {1} > {3}
Häufige Beispiele:
1 fügt „Beispiel“ ein 2 #Telefonnummern abgleichen: 3 #Im Allgemeinen sind chinesische Telefonnummern 7-8-stellig, Vorwahlen sind 3-4-stellige Ganzzahlen, die erste Ziffer der Vorwahl ist 0 und das Trennzeichen '-' ist in der Mitte verwendet 4 #Achten Sie auf die erste und letzte Einschränkung Symbol 5 Muster = /^0d{2,3}-d{7,8}$/ 6 setzt Muster =~ "010-82809999" # 0 7 setzt Muster =~ „00010-82809999“ # Null 8 9 #Passt auf die Mobiltelefonnummer 10 # Beginnend mit 1, die zweite Ziffer ist 3, 5, 8, 11 Ziffern 11 Muster = /^1[3,5,8] d{9}$/12 puts pattern =~ "15810990001" #013 14 #ID-Kartennummer 15 pattern = /d{18}|d{15}/16 17 #Match IP18 #Vier Gruppen von ganzen Zahlen, nicht größer als 255, getrennt durch „.“ 19 setzt „IP“ 20 num = /^d|[01]?d{1,2}|2[0-4]d|25[0-5]/21 Muster = /^(#{num}.){3} #{num}$/22 #Ein Ganzes: Muster = /^(^d|[01]?d{1,2}|2[0- 4]d|25[0-5].) {3}^d|[01]?d{1,2}|2[0-4]d|25[0-5]$/ 23 puts Pattern =~ "127.0.0.1" # 024 Puts Pattern =~ "254.255.255.255"25 26 #E-Mail-Adresse abgleichen 27 Pattern = /^w+@w+.w+$/ #Das hat kein '-' 28 Muster = /^[w-]+@[w- ]+.[w-]+$/29 puts Muster =~ " [email protected] " #030 31 # Match url32 # http:// www.google.cn33 pattern = /(http|https|ftp): (//|\\)((w)+[.]){1,}(net|com|cn|org| cc|tv|[0-9]{1,3})( ((/[~]*|\[~]*)34 (w)+)|[.](w)+ )*(((([?](w)+){ 1}[=]*))*((w)+){1}([&](w)+[=]( w)+)*)*/35 36 puts pattern =~ " http://www.google.cn?uid=123 " #0
andere
Die Bedeutung von Gier
1 setzt „gierig“ 2 #Greedy bedeutet Übereinstimmung mit der längsten möglichen Zeichenfolge 3 # ‚.‘ Bedeutung: andere Zeichen als Zeilenumbrüche 4 str = „wo das Meer auf das mondbleiche Land trifft“ 5 setzt str 6 match = /.* the/.match(str) 7 setzt match[0] # dort, wo das Meer auf das trifft, * ist gierig. Wenn Sie nicht gierig sein wollen, fügen Sie + '?' 8 #*?non-greedy 9 match = /.*?the/.match(str)10 puts match[0] # where the11 12 str.insert( 0,"Hallo n")13 match = /.*?the/.match(str)14 puts match[0] #where the
Positive und negative Vorschau
1 #Positive und negative Vorschau 2 setzt „Positive und negative Vorschau“ 3 s1 = „New World Dictionary“ 4 s2 = „New World Symphony“ 5 s3 = „New World Order“ 6 7 reg = /New World (?=Dictionary| Symphony)/ 8 m1 = reg.match(s1) 9 puts m1.to_a[0] # „New World“10 m2 = reg.match(s2)11 puts m2.to_a[0] # „New World“12 puts reg .match(s3) # nil13 14 setzt „negative Vorschau“15 16 reg = /New World (?!Symphony)/ # Es gibt keine „Symphony“ nach „New World“ 17 setzt reg.match(s1).to_a[0 ] # „New World“18 puts reg.match(s2).to_a[0] # nil19 puts reg.match(s3).to_a[0] # „New World“
-