2013-04-10 27 views
8

Tôi cần cụm từ thông dụng cho một chuỗi với chính xác một ký tự chữ cái trong đó.Cụm từ thông dụng cho một ký tự chỉ

Ví dụ, nó phải phù hợp:

  • 8*x=16
  • x+2=2
  • u329398239823
  • 43044343k43304403

... nhưng không:

  • xsfdjfefljefe
  • 44434f9434343 f
  • 98(***(*)))(*)(0((-900-87
  • 32233232
+0

Câu hỏi không rõ ràng, bạn muốn loại biểu thức nào? [a-zA-Z] không khớp với "8 * x = 16" – Daniel

+0

@simpleBob anh ta muốn biểu thức chỉ có một chữ cái. – Loamhoof

+1

bây giờ tôi nhận được nó, nên có chính xác một chữ cái trong toàn bộ chuỗi – Daniel

Trả lời

12
/^[^a-z]*([a-z])[^a-z]*$/i 

i cho phù hợp với case-insensitive.

^$ các neo để buộc regex khớp với toàn bộ chuỗi.

() để chụp thư.

+0

tốt, bạn đang thử nghiệm chuỗi nào? – Loamhoof

+0

phù hợp với "44434f9434343 f" – Daniel

+0

Nếu bạn muốn, chỉ cần sử dụng nhóm chụp. Đã chỉnh sửa. – Loamhoof

2

Hãy thử với:

/^[^a-z]*([a-z]{1})[^a-z]*$/gim 

Phương tiện bắt đầu của chuỗi (^), sau đó bất kỳ ký tự nonalpha 0 hoặc nhiều lần ([^a-z]*), sau đó đúng một alpha char bị bắt như trận đấu đầu tiên (([a-z]{1}), nó sẽ có sẵn để thay thế là $1), và sau đó không hoặc nhiều ký tự nonalpha một lần nữa, sau đó kết thúc chuỗi ($).

Xem hoạt động here.

+0

Tôi có thể hỏi tại sao tôi bị bỏ phiếu không? –

Các vấn đề liên quan