Ihre erste Funktion ist fast richtig.Entfernen Sie einfach das 'g' Flag, das für 'global' steht (edit) und geben Sie einen Kontext, um das zweite 'r' zu erkennen.
Edit: habe nicht gesehen, es war das zweite 'r' vor so hinzugefügt, '/'. Needs \/um das '/' zu vermeiden, wenn ein regEx-Argument verwendet wird. Vielen Dank für das upvotes aber ich war falsch, so werde ich fix und mehr Details für die Menschen zu verstehen, die Grundlagen der REGEX besser interessiert hinzufügen, aber dies funktionieren würde:
mystring.replace(/\/r/, '/')
Jetzt für die übermäßige Erklärung:
Beim Lesen/denk, einen RegexMuster Schreiben in Bezug auf: ein Merkmal oder eine Gruppe von charcters > gefolgt von < ein Zeichen oder eine Reihe von charcters gefolgt > < von < ...
in REGEX < ein Zeichen oder eine Reihe von charcters > einer nach dem anderen sein könnte:
/each char in this pattern/
So wie e lesen, gefolgt von einem, gefolgt von c, etc ...
oder ein einzelnes < ein Zeichen oder Satz von charcters > könnte Zeichen von einer Zeichenklasse beschrieben werden:
/[123!y]/
//any one of these
/[^123!y]/
//anything but one of the chars following '^' (very useful/performance enhancing btw)
oder erweitert auf eine Menge von Zeichen übereinstimmen (aber immer noch am besten von in Bezug auf die sequentielle prasseln als ein einzelnes Element zu denken n):
/a{2}/
//precisely two 'a' chars - matches identically as /aa/ would
/[aA]{1,3}/
//1-3 matches of 'a' or 'A'
/[a-zA-Z]+/
//one or more matches of any letter in the alphabet upper and lower
//'-' denotes a sequence in a character class
/[0-9]*/
//0 to any number of matches of any decimal character (/\d*/ would also work)
smoosh So ein Bündel zusammen:
var rePattern = /[aA]{4,8}(Eat at Joes|Joes all you can eat)[0-5]+/g
var joesStr = 'aaaAAAaaEat at Joes123454321 or maybe aAaAJoes all you can eat098765';
joesStr.match(rePattern);
//returns ["aaaAAAaaEat at Joes123454321", "aAaAJoes all you can eat0"]
//without the 'g' after the closing '/' it would just stop at the first match and return:
//["aaaAAAaaEat at Joes123454321"]
Und natürlich habe ich über erarbeitet aber mein Punkt war einfach, dass dies:
/cat/
eine Serie ist von 3 Musterelementen (ein Ding, gefolgt von einem Ding, gefolgt von einem Ding).
Und so ist dies:
/[aA]{4,8}(Eat at Joes|Joes all you can eat)[0-5]+/
Wie verrückt wie REGEX zu suchen beginnt, es bricht alles auf Reihe von Dingen (möglicherweise mit mehreren Zeichen Dinge) nach einander der Reihe nach. Irgendwie ein grundlegender Punkt, aber einer, der mich eine Weile gedauert hat, um vorbei zu kommen, also bin ich über Bord gegangen, um es hier zu erklären, da ich denke, es ist einer, der dem OP und anderen Neulingen helfen würde, zu verstehen, was vor sich geht. Der Schlüssel zum Lesen/Schreiben von RegEx besteht darin, es in diese Teile zu zerlegen.
ersetzt Was ist das Muster? Möchten Sie das erste Zeichen nach dem Schrägstrich entfernen? –
Ersetze "r2002" durch "2002" –
Ersetzt string.replaceAt ('r') die erste Instanz von 'r' in der Zeichenkette? – Kailas