2008-11-28 4 views
6

Tôi cần một RegExp khớp với một từ hoặc nhiều từ trong dấu ngoặc kép.RegExp khớp một Từ hoặc Nhiều Từ trong Dấu ngoặc kép

[\ w] * phù hợp với một từ

"[\ w \ W & & [^"]] *" phù hợp với nhiều từ trong dấu ngoặc kép.

(btw, không chắc chắn lý do tại sao \ w \ tác phẩm W, nhưng không phải là một đơn giản. (mà phải phù hợp với tất cả các ký tự)

Vậy làm thế nào để tôi kết hợp hai regexp?

Trả lời

4

Liệu "[^"]+" làm những gì bạn muốn? (phù hợp với một trận đấu đôi báo giá, một hoặc nhiều ký tự không phải là dấu ngoặc kép, sau đó m atch một đôi báo giá)

3

Tôi muốn thứ hai:.

"\s*((?:\w(?!\s+")+|\s(?!\s*"))+\w)\s*" 

hơn "[^"]+"^" phù hợp với tất cả mọi thứ, không chỉ \w (alphanumerical) char [a-zA-Z_0-9]

Bằng cách đó, bạn kết hợp chỉ \w ký tự trong dấu ngoặc kép, không có dấu cách.

" ee eee e ee " 

mang đến cho bạn trong nhóm (1):

ee eee e ee 

Các tiêu cực nhìn về phía trước (?!\s+") đang ở đây để chắc chắn rằng tôi không bao gồm các không gian cuối cùng trước khi nháy kép;

6

trước hết là cảm ơn.

câu trả lời của bạn thực sự hữu ích - nhưng tôi nhận thấy câu hỏi của mình có thể không đủ rõ ràng.

Dù sao, từ câu trả lời của bạn tôi đã kết thúc với regexp này:

"[^"] + "| [\ w] +

nào phù hợp với Words và Nhiều từ trong dấu ngoặc kép.

ví dụ: là những gì "điều này" sẽ cung cấp cho 3 trận đấu: trận đấu đầu tiên: những gì trận đấu thứ hai: là trận đấu thứ ba: "điều này"

0.123.

Đó chính xác là những gì tôi cần. Cảm ơn một lần nữa.

+0

+1 Đơn giản hơn nhiều;) Tôi không nhận được thông tin đầu tiên bạn muốn, nhưng tôi để lại câu trả lời để tham khảo – VonC