Tôi có một nguồn cấp dữ liệu trong Yahoo Pipes và muốn khớp mọi thứ sau một dấu chấm hỏi.
Cho đến nay, tôi đã tìm ra cách đối sánh dấu hỏi bằng cách sử dụng ..
\?
Bây giờ chỉ để phù hợp với mọi thứ nằm sau / sau dấu chấm hỏi.
"\\?"
Tôi có một nguồn cấp dữ liệu trong Yahoo Pipes và muốn khớp mọi thứ sau một dấu chấm hỏi.
Cho đến nay, tôi đã tìm ra cách đối sánh dấu hỏi bằng cách sử dụng ..
\?
Bây giờ chỉ để phù hợp với mọi thứ nằm sau / sau dấu chấm hỏi.
"\\?"
Câu trả lời:
\?(.*)
Bạn muốn nội dung của nhóm chụp đầu tiên.
Feb 5 '11 at 10:41
. Vẫn tốt nếu chỉ ra mọi thay đổi mà chúng tôi nhận được. Có thể ai đó sẽ học hỏi từ Dreamonic chỉ ra điều này.
Thử cái này:
\?(.*)
Các dấu ngoặc đơn là một nhóm thu thập mà bạn có thể sử dụng để trích xuất phần của chuỗi mà bạn quan tâm.
Nếu chuỗi có thể chứa các dòng mới, bạn có thể phải sử dụng công cụ sửa đổi "chấm tất cả" để cho phép dấu chấm khớp với ký tự dòng mới. Bạn có phải làm điều này hay không và làm như thế nào, phụ thuộc vào ngôn ngữ bạn đang sử dụng. Có vẻ như bạn đã quên đề cập đến ngôn ngữ lập trình bạn đang sử dụng trong câu hỏi của mình.
Một giải pháp thay thế khác mà bạn có thể sử dụng nếu ngôn ngữ của bạn hỗ trợ các xác nhận phía sau có chiều rộng cố định là:
(?<=\?).*
Với kỹ thuật lookbehind tích cực :
(?<=\?).*
(Chúng tôi đang tìm kiếm một văn bản có dấu chấm hỏi ở đây)
Input: derpderp?mystring blahbeh
Output: mystring blahbeh
Về cơ bản ?<=
, cấu trúc này là một cấu trúc nhóm, yêu cầu dấu chấm hỏi thoát trước khi bất kỳ trận đấu nào có thể được thực hiện.
Chúng hoạt động thực sự tốt, nhưng không phải tất cả các triển khai đều hỗ trợ chúng.
\?(.*)$
Nếu bạn muốn so khớp tất cả các ký tự sau "?" bạn có thể sử dụng một nhóm để khớp với bất kỳ ký tự nào và tốt hơn bạn nên sử dụng ký hiệu "$" để biểu thị cuối dòng.
.
theo mặc định không khớp với ký tự dòng mới. Kết quả là, ngay cả khi không có ký tự cuối dòng trong biểu thức, nó sẽ khớp với cuối dòng.
Kiểm tra trang web này: http://rubular.com/ Về cơ bản, trang web cho phép bạn nhập một số văn bản mẫu (những gì bạn sẽ tìm kiếm trên trang web của mình) và sau đó khi bạn xây dựng biểu thức chính quy, nó sẽ đánh dấu những gì đang được so khớp trong thời gian thực.
/([a-zA-Z]{4}):/
sẽ khớp Test: Welcome
và lấyTest
str.replace(/^.+?\"|^.|\".+/, '');
Điều này đôi khi không tốt khi sử dụng khi bạn muốn chọn nội dung khác cần xóa giữa "" và bạn không thể sử dụng nó nhiều hơn hai lần trong một chuỗi. Tất cả những gì nó làm là chọn bất cứ thứ gì không nằm giữa "" và thay thế nó bằng không.
Ngay cả đối với tôi nó là một chút khó hiểu, nhưng tôi cố gắng giải thích nó. ^.+?
(không bất cứ điều gì TÙY CHỌN) đến đầu tiên "
sau đó |
Hoặc / dừng (vẫn còn nghiên cứu những gì nó thực sự có nghĩa là) đến / tại ^.
đã lựa chọn gì cho đến trước 2 "
sử dụng ( |
stop / at). Và chọn tất cả những gì đi kèm với. +.
\?.*
khớp với mọi thứ (bao gồm cả một chuỗi trống) sau?
.