Func đầu tiên của bạn gần như đúng.Chỉ cần loại bỏ cờ 'g' viết tắt của 'toàn cầu' (sửa) và cho nó một số ngữ cảnh để phát hiện 'r' thứ hai.
Chỉnh sửa: không thấy đó là 'r' thứ hai trước khi thêm '/'. Cần \/để thoát khỏi '/' khi sử dụng regEx arg. Cảm ơn các upvotes nhưng tôi đã sai vì vậy tôi sẽ sửa chữa và bổ sung chi tiết hơn cho những người quan tâm trong việc tìm hiểu những điều cơ bản của regex tốt hơn nhưng điều này sẽ làm việc:
mystring.replace(/\/r/, '/')
Bây giờ để giải thích quá mức:
Khi đọc/viết một mẫu regex nghĩ về: < một nhân vật hay tập hợp các charcters > tiếp theo < một nhân vật hay tập hợp các charcters > tiếp theo < ...
trong regex < một nhân vật hay tập hợp các charcters > có thể cùng một lúc:
/each char in this pattern/
Vì vậy, đọc như e, theo sau là một, tiếp theo là c, vv ...
Hoặc một đơn < một nhân vật hoặc bộ charcters > có thể được nhân vật được mô tả bởi một lớp nhân vật:
/[123!y]/
//any one of these
/[^123!y]/
//anything but one of the chars following '^' (very useful/performance enhancing btw)
Hoặc mở rộng trên để phù hợp với một số lượng ký tự (nhưng vẫn tốt nhất để nghĩ đến như là một yếu tố duy nhất trong điều khoản của patter tuần tự 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)
Vì vậy Smoosh một bó với nhau:
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"]
Và dĩ nhiên là tôi đã quá xây dựng nhưng quan điểm của tôi chỉ đơn giản rằng đây:
/cat/
là một loạt của 3 yếu tố mô hình (một điều theo sau là một điều theo sau là một điều).
Và như vậy là thế này:
/[aA]{4,8}(Eat at Joes|Joes all you can eat)[0-5]+/
Như lập dị như regex bắt đầu tìm kiếm, tất cả vỡ xuống hàng loạt của sự vật (khả năng đa nhân vật thứ) sau mỗi tuần tự khác. Loại điểm cơ bản nhưng một trong đó đã cho tôi một thời gian để có được quá khứ vì vậy tôi đã đi overboard giải thích nó ở đây như tôi nghĩ rằng đó là một trong đó sẽ giúp OP và những người khác mới để regEx hiểu những gì đang xảy ra. Chìa khóa để đọc/viết regEx là phá vỡ nó thành những phần.
mô hình là gì? Bạn có muốn xóa char đầu tiên sau dấu gạch chéo không? –
thay thế "r2002" bằng "2002" –
Có string.replaceAt ('r') thay thế phiên bản đầu tiên của 'r' trong chuỗi? – Kailas