Hành vi bất ngờ với tìm từ và thay thế cho `? {1,2}`. Phù hợp với chuỗi ký tự dài


1

Câu hỏi liên quan đến tìm từ và thay thế bằng ký tự đại diện được bật (quasi regex).

Theo trang microsoft này :

  • ? đại diện cho bất kỳ ký tự đơn nào (như. trong regex)
  • {n, m} đại diện cho một số ký tự xác định giữa n và m.

Tuy nhiên, tôi nhận được kết quả như sau

chuỗi nguồn: aaaaaaaabbbbbbaaaaaa

tìm thấy những gì: b{1,2}a
Kết quả: abbbbb BBA aaaa
(dự kiến)

tìm thấy những gì: ??a
Kết quả: abbbbb BBA aaaa
(dự kiến)

tìm cái gì: ?{1,2}a
kết quả: abbbbbbba aaaa

Điều gì trên trái đất đang xảy ra với người cuối cùng ?? Có vẻ như nó đang cư xử như *

Câu trả lời:


2

Từ trang web bạn cung cấp:

{n, m} - Từ n đến m xuất hiện của ký tự hoặc biểu thức trước đó

() - Biểu hiện

? - Bất kỳ ký tự đơn , bao gồm ký tự dấu cách và dấu cách

Vì vậy, tôi nghĩ "?" không được coi là "ký tự" trong trường hợp này (vì "?" là "bất kỳ ký tự đơn" nào), nhưng khi bạn bao quanh nó bằng dấu ngoặc đơn, nó sẽ trở thành biểu thức và nó hoạt động.

Vậy regex đúng ở đây là: (?) {1,2} a


Điều này không rõ ràng trong tài liệu, cảm ơn bạn đã giúp tôi tìm ra điều này!
Một số_Guy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.