sách gpt4 ăn đã đi

mysql - Regex không hoạt động với dấu ngoặc đơn/đôi

In lại Tác giả: Walker 123 Thời gian cập nhật: 29-11-2023 06:31:20 29 4
mua khóa gpt4 giày nike

Tôi có một tập tin gọi là trường của tôi trường, chứa chuỗi sau:

{'Ngôn ngữ-Nội dung': 'en', 'Tùy chọn-Khung-X': 'SAMEORIGIN', 'X-Generator': 'Drupal 7 (http://drupal.org)', 'Liên kết': '; rel="shortlink"', 'Some-Header-Key': 'max-age=31; addSomething', 'Mã hóa-Nội dung': 'gzip'}

Tôi muốn chụp'Some-Header-Key': 'max-age=31; thêmSomething' Trong số đó: 1) 'Một số-Tiêu-đề-Khóa'tuổi tối đa là một giá trị cố định phải luôn tồn tại.

2) thêmCái gì đó là tùy chọn.

3) Có thể có một hoặc nhiều dấu cách giữa dấu hai chấm kép và dấu bằng

4) Dạng chung là 'key': 'value', với dấu ngoặc đơn hoặc dấu ngoặc kép.

5) ([^""|'])* Biểu thị: 0 hoặc nhiều ký tự không phải là dấu ngoặc đơn hoặc dấu ngoặc kép. Việc này là để nắm bắt thêmCái gì đó

Tôi đã viết truy vấn này:

chọn trường của tôi
từ mytable
trong đó mycol regexp "('|"")Some-Header-Key('|"")\s*:\s*('|"")([^""|'])*max-age\s*=\s*[0-9]+([^""|'])*('|"")";

Nhưng nó không trả lại bất cứ điều gì! trường của tôi Chứa chuỗi ví dụ ở trên.

Khi tôi sao chép giá trị trường vào một tệp văn bản bên ngoài và đặt nó vào va li Khi chạy biểu thức chính quy trong , biểu thức chính quy sẽ ghi lại chuỗi một cách chính xác.

Có chuyện gì với MySQL vậy? Tôi đang sử dụng MySQL Workbench 8.0 trong Ubuntu 18.04.

câu trả lời hay nhất

Vấn đề của bạn nằm ở biểu thức chính quy \S . Các phiên bản trước MySQL 8 không hỗ trợ ký hiệu này, bạn cần sử dụng các lớp ký tự [:trống:] thay vì

trong đó mycol regexp "('|"")Some-Header-Key('|"")[[:blank:]]*:[[:blank:]]*('|"")([^""|'])*max-age[[:blank:]]*=[[:blank:]]*[0-9]+([^""|'])*('|"")"

Trong MySQL 8 bạn có thể sử dụng \S Nhưng bạn cần thoát dấu gạch chéo ngược vì MySQL sử dụng cú pháp thoát kiểu C trong chuỗi, vì vậy \S Chỉ cần chuyển đổi thànhS. Vì vậy, nó sẽ \S Thay đổi thành \\S Nó sẽ hoạt động:

trong đó mycol regexp "('|"")Some-Header-Key('|"")\\s*:\\s*('|"")([^""|'])*max-age\\s*=\\s*[0-9]+([^""|'])*('|"")"

Bản demo trên dbfiddle

Về mysql - biểu thức chính quy không hoạt động với dấu ngoặc đơn/đôi, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/56053160/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress