Trong chuỗi đầu vào sau:Hướng dẫn Regular Expression cần thiết cho Javascript
{$foo}foo bar \\{$blah1}oh{$blah2} even more{$blah3} but not{$blarg}{$why_not_me}
Tôi cố gắng để phù hợp với tất cả các trường của {$SOMETHING_HERE}
không được bắt đầu bằng một dấu chéo ngược được thoát.
Ví dụ:
Tôi muốn nó để phù hợp với {$SOMETHING}
nhưng không \{$SOMETHING}
.
Nhưng tôi muốn nó để phù hợp với \\{$SOMETHING}
Nỗ lực:
Tất cả những nỗ lực của tôi cho đến nay sẽ phù hợp với những gì tôi muốn trừ thẻ ngay bên cạnh nhau như {$SOMETHING}{$SOMETHING_ELSE}
đây là những gì tôi hiện có:
var input = '{$foo}foo bar \\{$blah1}oh{$blah2} even more{$blah3} but not{$blarg}{$why_not_me}';
var results = input.match(/(?:[^\\]|^)\{\$[a-zA-Z_][a-zA-Z0-9_]*\}/g);
console.log(results);
Kết quả đầu ra:
["{$foo}", "h{$blah2}", "e{$blah3}", "t{$blarg}"]
Goal
Tôi muốn nó được:
["{$foo}", "{$blah2}", "{$blah3}", "{$blarg}", "{$why_not_me}"]
Câu hỏi
Ai có thể chỉ cho tôi đi đúng hướng?
Tôi nhận thức được cái nhìn phía sau là những gì tôi cần và javascript không hỗ trợ chúng. Tôi chưa bao giờ thực hiện giả mạo trước đây nhưng tôi sẽ kiểm tra liên kết! – nathanjosiah
@nathanjosiah tôi đã cập nhật câu trả lời của mình với nhiều thông tin hơn. – Griffin
Cảm ơn bài viết! Đúng thứ tôi cần! Tôi đã đăng giải pháp của mình làm câu trả lời. – nathanjosiah