Tôi đang cố gắng để thu hẹp biểu thức chính quy sau:chuỗi Regex để tìm số điện thoại không bắt đầu với 91
/\b([0-9]{22})\b/
chỉ match 22 chữ số mà không bắt đầu với "91"
. Bất cứ ai biết làm thế nào để làm điều này?
Tôi đang cố gắng để thu hẹp biểu thức chính quy sau:chuỗi Regex để tìm số điện thoại không bắt đầu với 91
/\b([0-9]{22})\b/
chỉ match 22 chữ số mà không bắt đầu với "91"
. Bất cứ ai biết làm thế nào để làm điều này?
Nếu động cơ regexp của bạn có zero width negative lookahead, sau đó:
/\b((?!91)[0-9]{22})\b/
(?!91)
gây mô hình để phù hợp với chỉ khi hai nhân vật tiếp theo không phải là 91, nhưng không tiêu thụ các nhân vật, để lại chúng được kết hợp bởi [0-9]{22}
.
Nhiều công cụ regexp cũng cho phép \d
cho chữ số thập phân. Nếu bạn không có gì, sau đó:
/\b((?!91)\d{22})\b/
Bingo! Điều đó làm việc hoàn hảo. Cảm ơn. – user77413
@ user77413, Bạn được chào đón và cảm ơn vì dấu kiểm. –
Hãy thử điều này:
/\b(?:[0-8][0-9]|9[02-9])[0-9]{20}\b/
(các lookahead tiêu cực chắc chắn là tốt hơn, nếu được hỗ trợ) – Kobi
Và nếu lookahead tiêu cực không được hỗ trợ, đây là con đường để đi. –
ngôn ngữ hoặc động cơ biểu thức chính quy gì bạn đang sử dụng? –