Mysql xóa số khỏi chuỗi

Hướng dẫn MariaDB này giải thích cách sử dụng hàm MariaDB REGEXP_REPLACE với cú pháp và ví dụ

Sự miêu tả

Hàm MariaDB REGEXP_REPLACE là phần mở rộng của hàm REPLACE. Chức năng này, được giới thiệu trong MariaDB 10. 0. 5, sẽ cho phép bạn thay thế tất cả các lần xuất hiện của một chuỗi con trong một chuỗi bằng cách sử dụng khớp mẫu biểu thức chính quy

cú pháp

Cú pháp của hàm REGEXP_REPLACE trong MariaDB là

REGEXP_REPLACE( string, pattern, replacement )

Tham số hoặc Đối số

stringChuỗi cần tìm. mẫu

Thông tin phù hợp với biểu thức chính quy. Nó có thể là sự kết hợp của những điều sau đây

ValueDescription^Khớp với phần đầu của chuỗi. Nếu được sử dụng với tham số match_của 'm', nó sẽ khớp với đầu dòng ở bất kỳ đâu trong biểu thức. $ Khớp với phần cuối của một chuỗi. Nếu được sử dụng với tham số match_của 'm', nó sẽ khớp với cuối dòng ở bất kỳ đâu trong biểu thức. *Không khớp hoặc nhiều lần xuất hiện. +Khớp một hoặc nhiều lần xuất hiện. ?Trận đấu không hoặc một lần xuất hiện. Khớp với bất kỳ ký tự nào ngoại trừ NULL. Được sử dụng như một "HOẶC" để chỉ định nhiều hơn một phương án thay thế. [ ]Được sử dụng để chỉ định một danh sách khớp mà bạn đang cố gắng khớp bất kỳ ký tự nào trong danh sách. [^ ]Được sử dụng để chỉ định một danh sách không khớp mà bạn đang cố khớp bất kỳ ký tự nào ngoại trừ các ký tự trong danh sách. ( )Được sử dụng để nhóm các biểu thức thành một biểu thức con. {m}Trận đấu m lần. {m,}Trận đấu ít nhất m lần. {m,n}Trận đấu ít nhất m lần, nhưng không quá n lần. \nn là một số từ 1 đến 9. Khớp với biểu thức con thứ n được tìm thấy trong ( ) trước khi gặp \n. [. ] Khớp một phần tử đối chiếu có thể có nhiều hơn một ký tự. [. ] Khớp các lớp nhân vật. [==]Khớp với các lớp tương đương. \dKhớp một ký tự chữ số. \DKhớp một ký tự không có chữ số. \wKhớp một ký tự từ. \WKhớp một ký tự không phải từ. \sKhớp với một ký tự khoảng trắng. \Smatches một ký tự không phải khoảng trắng. *?Khớp mẫu trước không hoặc nhiều lần xuất hiện. +?Khớp mẫu trước đó một hoặc nhiều lần xuất hiện. ??Khớp mẫu trước không hoặc một lần xuất hiện. {n}?Khớp mẫu trước đó n lần. {n,}?Khớp mẫu trước đó ít nhất n lần. {n,m}?Khớp mẫu trước đó ít nhất n lần, nhưng không nhiều hơn m lần. replaceChuỗi con thay thế. Tất cả các lần xuất hiện của mẫu được tìm thấy trong chuỗi được thay thế bằng thay thế

Ghi chú

  • Nếu hàm REGEXP_REPLACE không tìm thấy bất kỳ sự xuất hiện nào của mẫu, nó sẽ trả về chuỗi ban đầu mà không có bất kỳ thay đổi nào
  • Trang này áp dụng cho MariaDB 10. 0. 5 trở lên, sử dụng thư viện regex PCRE
  • Xem thêm hàm REPLACE

Áp dụng đối với

Hàm REGEXP_REPLACE có thể được sử dụng trong các phiên bản sau của MariaDB

  • MariaDB 10. 0. 5+

Ví dụ - So khớp trên nhiều phương án thay thế

Hãy bắt đầu bằng cách xem cách sử dụng mẫu | với hàm REGEXP_REPLACE trong MariaDB

Ví dụ

SELECT REGEXP_REPLACE ('TechOnTheNet','a|e|i', '8');
Result: 'T8ch8nTh8N8t'

Các ví dụ REGEXP_REPLACE này sẽ thay thế tất cả các lần xuất hiện của các chữ cái "a", "e", "i" hoặc "o" trong chuỗi "TechOnTheNet" bằng "8". Hàm REGEXP_REPLACE thực hiện tìm kiếm không phân biệt chữ hoa chữ thường nên việc các giá trị "a", "e", "i" hoặc "o" là chữ hoa hay chữ thường không quan trọng

Tìm kiếm phân biệt chữ hoa chữ thường

Nếu chúng tôi muốn thực hiện tìm kiếm phân biệt chữ hoa chữ thường, chúng tôi cần sửa đổi hàm REGEXP_REPLACE của mình để sử dụng chuỗi nhị phân. Điều này có thể được thực hiện bằng cách sử dụng mẫu (?-i)

SELECT REGEXP_REPLACE ('TechOnTheNet', '(?-i)a|(?-i)e|(?-i)i|(?-i)o', '8');
Result: 'T8chOnTh8N8t'

Trong ví dụ này, chúng tôi đã sử dụng chúng tôi đã sử dụng mẫu (?-i) để buộc hàm REGEXP_REPLACE thực hiện khớp mẫu phân biệt chữ hoa chữ thường. Vì vậy, bây giờ ký tự "O" viết hoa trong "TechOnTheNet" không được thay thế bằng "8"

Tìm kiếm theo cột trong bảng

Bây giờ, hãy trình bày cách sử dụng hàm REGEXP_REPLACE với một cột trong bảng

Vì vậy, giả sử chúng ta có một bảng liên hệ với dữ liệu sau

contact_idlast_name1000Anderson2000Smith3000Johnson

Bây giờ, hãy chạy truy vấn sau

SELECT contact_id, last_name, REGEXP_REPLACE (last_name, 'a|e|i|o|u', "z") AS Result
FROM contacts;

Đây là những kết quả sẽ được trả về bởi truy vấn

contact_idlast_nameResult1000Andersonzndzrszn2000SmithSmzth3000JohnsonJzhnszn

Ví dụ - Ghép từ

Tiếp theo, hãy xem cách sử dụng hàm REGEXP_REPLACE để thay thế từ đầu tiên trong chuỗi

Ví dụ

SELECT REGEXP_REPLACE ('TechOnTheNet is a great resource', '(\\S*)', 'CheckYourMath');
Result: 'CheckYourMath is a great resource'

Ví dụ này sẽ trả về 'CheckYourMath is a great resource' bởi vì nó sẽ thay thế tất cả các ký tự không phải khoảng trắng như được chỉ định bởi

SELECT REGEXP_REPLACE ('TechOnTheNet','a|e|i', '8');
Result: 'T8ch8nTh8N8t'
1 và dừng khi chạm vào ký tự khoảng trắng đầu tiên (nghĩa là. ký tự khoảng trắng). Điều đó sẽ dẫn đến từ 'TechOnTheNet' được thay thế bằng 'CheckYourMath'

Ví dụ - Khớp trên các ký tự chữ số

Bây giờ, hãy xem tiếp cách chúng ta sẽ sử dụng hàm REGEXP_REPLACE để khớp trên một mẫu ký tự chữ số

Ví dụ

SELECT REGEXP_REPLACE ('7, 8, and 15 are numbers in this example', '\\d', 'abc');
Result: 'abc, abc, and abcabc are numbers in this example'

Ví dụ này sẽ thay thế các chữ số trong chuỗi bằng "abc" như được chỉ định bởi

SELECT REGEXP_REPLACE ('TechOnTheNet','a|e|i', '8');
Result: 'T8ch8nTh8N8t'
2. Trường hợp này sẽ ghép vào các con số 7, 8, 15

Chúng tôi có thể thay đổi mẫu của mình để chỉ thay thế các số có hai chữ số

Ví dụ

________số 8_______

Ví dụ này sẽ thay thế tất cả các số có hai chữ số bằng "abc" như được chỉ định bởi

SELECT REGEXP_REPLACE ('TechOnTheNet','a|e|i', '8');
Result: 'T8ch8nTh8N8t'
3. Trong trường hợp này, nó sẽ bỏ qua các giá trị số 7 và 8 và chỉ thay thế số 15

Bây giờ, hãy xem cách chúng ta sẽ sử dụng hàm REGEXP_REPLACE với một cột trong bảng và tìm kiếm một số có hai chữ số

Ví dụ

SELECT REGEXP_REPLACE (address, '\\d', '')
FROM contacts;

Trong ví dụ này, chúng tôi sẽ xóa tất cả các số khỏi trường địa chỉ trong bảng danh bạ. Điều này được thực hiện bằng cách tìm kiếm tất cả các số bằng cách sử dụng

SELECT REGEXP_REPLACE ('TechOnTheNet','a|e|i', '8');
Result: 'T8ch8nTh8N8t'
2 và thay thế bằng ""

Làm cách nào để xóa các ký tự số khỏi chuỗi trong SQL?

Các nhà phát triển SQL Server có thể sử dụng ClearNumeric Characters() hàm do người dùng SQL xác định như được thấy trong các mẫu mã bên dưới trong chương trình của họ để thay thế hoặc xóa các ký tự số .

Làm cách nào để xóa 2 ký tự đầu tiên khỏi chuỗi trong MySQL?

Sử dụng hàm TRIM() với từ khóa LEADING để xóa các ký tự ở đầu chuỗi.

Làm cách nào để xóa một phần chuỗi trong MySQL?

Sử dụng hàm REPLACE() của MySQL để thay thế một chuỗi con (i. e. từ, ký tự, v.v. ) bằng một chuỗi con khác và trả về chuỗi đã thay đổi .

Làm cách nào để xóa các ký tự đặc biệt khỏi chuỗi trong MySQL?