70
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi cần trả về chỉ văn bản chứa trong dấu ngoặc vuông trong một chuỗi. Tôi có Regex sau, nhưng điều này cũng trả về dấu ngoặc vuông:
var matched = mystring.match["\\[.*]"];
Một chuỗi sẽ chỉ chứa một bộ dấu ngoặc vuông, ví dụ:
Some text with [some important info]
Tôi muốn khớp với 'một số thông tin quan trọng', thay vì '[một số thông tin quan trọng]' tôi hiện đang nhận được.
hỏi ngày 29 tháng 9 năm 2009 lúc 14:47Sep 29, 2009 at 14:47
Sử dụng nhóm. Tôi đã thêm một
Some text with [some important info]
1 để tạo ra "ungreedy" phù hợp, vì đây có lẽ là những gì bạn muốn.var matches = mystring.match[/\[[.*?]\]/];
if [matches] {
var submatch = matches[1];
}
Đã trả lời ngày 29 tháng 9 năm 2009 lúc 14:54Sep 29, 2009 at 14:54
Alex Barrettalex BarrettAlex Barrett
15.7K3 Huy hiệu vàng 50 Huy hiệu bạc51 Huy hiệu Đồng3 gold badges50 silver badges51 bronze badges
1
Vì JavaScript không hỗ trợ bắt giữ, bạn phải hack xung quanh nó. Hãy xem xét sự thay thế này có cách tiếp cận ngược lại. Thay vào đó, nắm bắt những gì bên trong ngoặc, loại bỏ những gì bên ngoài chúng. Vì sẽ chỉ có một bộ dấu ngoặc, nên nó sẽ hoạt động tốt. Tôi thường sử dụng kỹ thuật này để tước bỏ khoảng trắng hàng đầu và dấu vết.
mystring.replace[ /[^.*\[|\].*$]/g, '' ];
Đã trả lời ngày 29 tháng 9 năm 2009 lúc 19:04Sep 29, 2009 at 19:04
Stephen Sorensensephen SorensenStephen Sorensen
10,9K12 Huy hiệu vàng31 Huy hiệu bạc45 Huy hiệu Đồng12 gold badges31 silver badges45 bronze badges
1
Để phù hợp với bất kỳ văn bản nào ở giữa hai dấu ngoặc vuông mở và đóng liền kề, bạn có thể sử dụng mẫu sau:
\[[[^\][]*]]
[?b.replace[/\[|[.*?]\]/g,"$1"]]
Đã trả lời ngày 25 tháng 7 năm 2018 lúc 10:51Jul 25, 2018 at 10:51
ivan0biwanivan0biwanivan0biwan
1892 Huy hiệu bạc7 Huy hiệu đồng2 silver badges7 bronze badges
Bạn không thể. JavaScript không hỗ trợ Lookbehinds.
Bạn sẽ phải sử dụng một nhóm chụp hoặc cắt ra khỏi giá đỡ.
Nhân tiện, có lẽ bạn không muốn một
var matches = mystring.match[/\[[.*?]\]/];
if [matches] {
var submatch = matches[1];
}
6 tham lam trong regex của bạn. Thử cái này:"\\[.*?]"
Hoặc tốt hơn, điều này:
Some text with [some important info]
0Đã trả lời ngày 29 tháng 9 năm 2009 lúc 14:50Sep 29, 2009 at 14:50
EnnuikillerennuikillerJeremy Stein
45,7K14 Huy hiệu vàng110 Huy hiệu bạc137 Huy hiệu đồng16 gold badges68 silver badges82 bronze badges