Xu Hướng 3/2024 # Một Số Ví Dụ Về Sử Dụng Regex Trong Java # Top 11 Xem Nhiều

Bạn đang xem bài viết Một Số Ví Dụ Về Sử Dụng Regex Trong Java được cập nhật mới nhất tháng 3 năm 2024 trên website Channuoithuy.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.

Regular Expression hay còn gọi là biểu thức chính quy được dùng để xử lý chuỗi nâng cao thông qua biểu thức riêng của nó, những biểu thức này sẽ có những nguyên tắc riêng và bạn phải tuân theo nguyên tắc đó thì biểu thức của bạn mới hoạt động được. Ngoài cái tên gọi Regular Expression ra thì nó còn có thể viết tắt thành Regex.

Nguyên tắc hoạt động của biểu thức Regex là so khớp dựa vào khuôn mẫu, khuôn mẫu được xây dựng từ các quy tắc căn bản của biểu thức Regex. Các ký tự thường dùng trong Regex:

. : đại diện cho 1 ký tự bất kỳ trừ ký tự xuống dòng n.

d : ký tự chữ số tương đương [0-9]

D : ký tự ko phải chữ số

s : ký tự khoảng trắng tương đương [ fnrtv]

S : ký tự không phải khoảng trắng tương đương [ ^fnrtv]

w : ký tự word (gồm chữ cái và chữ số, dấu gạch dưới _ ) tương đương [a-zA-Z_0-9]

W : ký tự không phải ký tự word tương đương [^a-zA-Z_0-9]

^ : bắt đầu 1 chuỗi hay 1 dòng

$ : kết thúc 1 chuỗi hay 1 dòng

A : bắt đầu 1 chuỗi

z : kết thúc 1 chuỗi

[abc] : khớp với 1 ký tự nằm trong nhóm là a hay b hay c.

[a-z] so trùng với 1 ký tự nằm trong phạm vi a-z, dùng dấu – làm dấu ngăn cách.

[^abc] sẽ không so trùng với 1 ký tự nằm trong nhóm, ví dụ không so trùng với a hay b hay c.

() : Xác định 1 group (biểu thức con) xem như nó là một yếu tố đơn lẻ trong pattern .ví dụ ((a(b))c) sẽ khớp với b, ab, abc.

? : khớp với đứng trước từ 0 hay 1 lần. Ví dụ A?B sẽ khớp với B hay AB.

: khớp với đứng trước từ 0 lần trở lên . A*B khớp với B, AB, AAB

: khớp với đứng trước từ 1 lần trở lên. A+B khớp với AB, AAB.

{n} : n là con số, Khớp đúng với n ký tự đúng trước nó . Ví dụ A{2}) khớp đúng với 2 chữ A.

{n, } : khớp đúng với n ký tự trở lên đứng trước nó , A{2,} khớp vói AA, AAA …

Username Validation Chúng ta cần kiểm tra chuối string input nhập vào, là uername hay không, nếu là uername nó cần thỏa mãn các điều kiện sau:

Có từ 3 – 5 kí tự

các chữ số 0 – 9 và một số kí tự đặc biệt: “_”, “-“, “.”

Pattern được sử dụng là: ^[a-z0-9._-]{3,15}$

^ : bắt đầu chuỗi

[a-z0-9._-] Check kí tự xuất hiện trong chuỗi là a-z, 0-9, _, – hoặc .

{3,15} : có từ 3 – 15 kí tự

$ : kết thúc chuỗi

import java.util.regex.Pattern; public class UsernameValidator { private Pattern pattern; private static final String USERNAME_PATTERN = "^[a-z0-9._-]{3,15}$"; public UsernameValidator() { pattern = Pattern.compile(USERNAME_PATTERN); } public boolean validate(final String username) { return pattern.matcher(username).matches(); } } public class UsernameValidatorDemo { public static void main(String[] args) { UsernameValidator validator = new UsernameValidator();

Password Complexity Validation Điều kiện để chuỗi đầu vào là password cần thỏa mãn các điều kiện sau:

Có độ dài từ 6 – 15 kí tự

Có ít nhất 1 kí tự thường, 1 kí tự viết hoa và 1 chữ số

Có 1 trong các kí tự đặc biệt sau (! # $ @ _ + , ? . – )

Pattern được sử dụng là: ((?=. d)(?=.[a-z])(?=.[A-Z])(?=.[!.#[email protected]_+,?-]).{8,50})

( Start of group

(?=.*d) must contains one digit from 0-9

(?=.*[a-z]) must contains one lowercase characters

(?=.*[A-Z]) must contains one uppercase characters

(?=.*[!.#@_+,?-]) must contains one special symbols in the list &quot!.#@_+,?-” . match anything with previous condition checking

{8,50} length at least 8 characters and maximum of 50

) End of group

import java.util.regex.Pattern; public class PasswordValidator { private Pattern pattern; private static final String PASSWORD_PATTERN = "((?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!.#[email protected]_+,?-]).{8,50})"; public PasswordValidator() { pattern = Pattern.compile(PASSWORD_PATTERN); } public boolean validate(final String password) { return pattern.matcher(password).matches(); } } public class PasswordValidatorDemo { public static void main(String[] args) { PasswordValidator validator = new PasswordValidator();

All Rights Reserved

Hàm Sumproduct Trong Excel Và Một Số Ví Vụ Công Thức

Bài hướng dẫn này giải thích cách sử dụng cơ bản và nâng cao của hàm SUMPRODUCT trong Excel. Bạn sẽ thấy một vài ví dụ công thức dùng để so sánh mảng, tính tổng có điều kiện và đếm số ô có nhiều điều kiện, tính trung bình cộng có trọng lượng và hơn thế nữa.

Khi bạn nghe cái tên hàm SUMPRODUCT lần đầu tiên, nó có vẻ là một công thức vô ích – công thức tính tổng thông thường của các tích số. Nhưng định nghĩa này không cho thấy thậm chí là chỉ một phần nhỏ tính năng của hàm SUMPRODUCT.

HÀM SUMPRODUCT TRONG EXCEL – CÚ PHÁP VÀ CÔNG DỤNG:

Về mặt kỹ thuật, hàm SUMPRODUCT trong Excel nhân các con số trong mảng xác định, rồi trả về tổng của các tích số đó.

Cú pháp của hàm SUMPRODUCT rất đơn giản:

SUMPRODUCT(array1, [array2], [array3], …)

Trong đó, mảng 1, mảng 2, … là các dải ô liên tục hay là các mảng có chứa thành phần bạn muốn nhân, rồi cộng lại.

Số mảng tối thiểu là 1. Trong trường hợp này, hàm SUMPRODUCT chỉ đơn giản tính tổng các thành phần mảng rồi trả về tổng số.

Số mảng tối đa là 255 trong Excel 2024, Excel 2013, Excel 2010, và Excel 2007, và 30 trong các phiên bản trước của Excel.

Mặc dù hàm SUMPRODUCT xử lý mảng, nhưng nó không yêu cầu phím tắt mảng (Ctrl + Shift + Enter). Bạn hoàn thành một công thức SUMPRODUCT theo cách thông thường bẳng cách nhấn phím Enter.

Lưu ý:

Tất cả mảng trong công thức SUMPRODUCT phải có cùng số hàng và số cột , nếu không thì bạn sẽ nhận lỗi #VALUE!.

Nếu bất cứ câu lệnh mảng nào chứa giá trị phi số, chúng sẽ được xử lý như số 0.

Nếu mảng là phép thử lô gic, thì nó sẽ trả về giá trị TRUE và FALSE. Thông thường, bạn cần phải đổi các giá trị TRUE và FALSE này thành 1 và 0 bằng cách sử dụng toán tử đơn phân (-). Hãy xem qua ví dụ hàm SUMPRODUCT có nhiều điều kiện để nắm rõ hơn.

Hàm SUMPRODUCT không hỗ trợ ký tự đại diện.

[Đăng ký]: Khóa học Excel nâng cao Online

CÁCH DÙNG CƠ BẢN CỦA HÀM SUMPRODUCT TRONG EXCEL:

Để có cái nhìn tổng quát về cách hàm SUMPRODUCT hoạt động, hãy xem qua ví dụ sau.

Giả sử bạn có số lượng ở các ô A2:A4, và bạn muốn tính tổng. Nếu bạn đang giải một phép toán ở trường, thì bạn sẽ nhân số lượng với giá tiền của mỗi sản phẩm, rồi cộng chúng lại. Trong Microsoft Excel, bạn có thể nhận được kết quả chỉ với một công thức SUMPRODUCT:

=SUMPRODUCT(A2:A4,B2:B4)

Công thức chọn số đầu tiên trong mảng đầu tiên rồi nhân nó cho số đầu tiên trong mảng thứ hai, rồi lấy số thứ hai trong mảng đầu tiên nhân cho số thứ hai trong mảng thứ hai rồi cứ tiếp tục như thế.

Khi đã nhân tất các thành phần mảng, công thức sẽ tính tổng các tích số rồi trả về tổng số.

Nói cách khác, công thức SUMPRODUCT biểu diễn công thức toán học sau đây:

=A2*B2 + A3*B3 + A4*B4

Hãy nghĩ đến việc bạn có thể tiết kiệm bao nhiều thời gian nếu bảng của bạn không chứa 3 hàng dữ liệu, mà là 3 trăm hay 3 ngàn hàng!

CÁCH SỬ DỤNG HÀM SUMPRODUCT TRONG EXCEL – VÍ DỤ CÔNG THỨC: HÀM SUMPRODUCT CÓ NHIỀU ĐIỀU KIỆN

Thông thường trong Microsoft Excel, luôn có nhiều hơn một cách để hoàn thành công việc. Nhưng khi nói đến việc so sánh hai hay nhiều mảng, đặc biệt là có nhiều điều kiện, nếu không nói là duy nhất, hàm SUMPRODUCT là hàm hiệu quả nhất. À thì, hàm SUMPRODUCT hay công thức mảng đều được.

Giả sử bạn có danh sách các món hàng ở cột A, doanh số bán dự kiến ở cột B, và doanh số bán thực ở cột C. Mục tiêu của bạn là tìm xem có bao nhiêu có bao nhiêu món bán ít hơn dự kiến. Đối với trường hợp này, hãy sử dụng một trong những biến phân của công thức SUMPRODUCT:

=SUMPRODUCT(-(C2:C10<B2:B10))

hay

=SUMPRODUCT((C2:C10<B2:B10)*1)

Trong đó C2:C10 là doanh số thực và B2:B10 là doanh số dự kiến.

=SUMPRODUCT(-(C2:C10<B2:B10), -(A2:A10=”táo”))

Hay, bạn có thể sử dụng cú pháp sau:

=SUMPRODUCT((C2:C10<B2:B10)*(A2:A10=”táo”))

CÁCH CÔNG THỨC SUMPRODUCT CÓ MỘT ĐIỀU KIỆN HOẠT ĐỘNG:

Đối với người mới bắt đầu, hãy chia nhỏ công thức đơn giản hơn – công thức so sánh các con số trong hai cột hàng theo hàng, và nói cho chúng ta biết số lần cột C ít hơn cột B:

=SUMPRODUCT(-(C2:C10<B2:B10))

Nếu bạn chọn phần (C2:C10<B2:B10) trong thanh công thức, và nhấn F9 để xem giá trị ẩn, thì bạn sẽ thấy mảng sau:

Hai dấu trừ (-), về mặt kỹ thuật được gọi là hai toán tử đơn phân, nó ép buộc TRUE và FALSE thành 1 và 0: {0;1;0;0;1;0;1;0;0}.

Cách khác để đổi giá trị lôgic thành giá trị số đó là nhân mảng với 1:

=SUMPRODUCT((C2:C10<B2:B10)*1)

Cách nào cũng được, vì chỉ có một mảng trong công thức SUMPRODUCT, nên nó chỉ nhân 1 trong mảng cho kết quả và chúng ta nhận được kết quả đếm mong muốn. Rất dễ, đúng không nào?

Khi công thức SUMPRODUCT trong Excel chứa hai hay nhiều mảng, nó nhân các thành phần của mảng, rồi cộng các tích số.

=SUMPRODUCT(-(C2:C10<B2:B10), -(A2:A10=”táo”))

hay

=SUMPRODUCT((C2:C10<B2:B10)*(A2:A10=”táo”))

Điểm khác biệt duy nhất về mặt kỹ thuật giữa hai công thức đó là phương pháp ép buộc TRUE và FALSE thành 1 và 0 – bằng cách sử dụng hai toán tử đơn phân hay phép nhân. Kết quả là, chúng ta nhận được hai mảng 1 và 0:

Trong Excel 2003 và các phiên bản trước thì không có hàm IFS, một trong những cách dùng thông dụng nhất của hàm SUMPRODUCT đó là tính tổng hay đếm có điều kiện các ô với nhiều tiêu chuẩn. Bắt đầu với Excel 2007, Microsoft giới thiệu một chuỗi hàm được đặc biệt thiết kế cho những nhiệm vụ này – hàm SUMIFS, hàm COUNTIFS và hàm AVERAGEIFS.

CÔNG THỨC SUMPRODUCT VỚI HÀM LÔGIC AND:

Trong các phiên bản Excel gần đây: Excel 2024, 2013, 2010 và 2007, bạn có thể dễ dàng hoàn thành nhiệm vụ bằng cách sử dụng công thức SUMIFS, COUNTIFS và AVERAGEIFS. Nếu bạn đang tìm một hướng đi khó khăn hơn, hay nếu bạn vẫn sử dụng Excel 2003 hay phiên bản cũ hơn, thì bạn vẫn đạt được kết quả mong muốn với hàm SUMPRODUCT.

Để đếm doanh số táo bán ra ở khu vực phía Bắc:

=SUMPRODUCT(-(A2:A12=”khu vực phía Bắc”), -(B2:B12=”táo”))

hay

=SUMPRODUCT((A2:A12=”khu vực phía Bắc”)*(B2:B12=”táo”))

Để tính tổng doanh số táo bán ra ở khu vực phía Bắc:

=SUMPRODUCT(-(A2:A12=”khu vực phía Bắc”), -(B2:B12=”táo”), C2:C12)

hay

=SUMPRODUCT((A2:A12=”khu vực phía Bắc”)*(B2:B12=”táo”)*C2:C12)

Để tính trung bình cộng doanh số táo bán ra ở khu vực phía Bắc:

Để tính trung bình cộng, chúng ta chỉ chia tổng cho phép đếm như thế này:

=SUMPRODUCT(-(A2:A12=”khu vực phía Bắc”), -(B2:B12=”táo”), C2:C12) / SUMPRODUCT( -(A2:A12=”khu vực phía Bắc”), -(B2:B12=”táo”))

Từ ví dụ trước, bạn đã biết cách công thức SUMPRODUCT trong Excel đếm số ô cùng với hiều điều kiện. Nếu bạn đã hiểu rõ cách đó, sẽ rất dễ dàng để bạn nắm rõ quy luật tính tổng.

=SUMPRODUCT(-(A2:A12=”khu vực phía Bắc”), -(B2:B12=”táo”), C2:C12)

Trong mảng thứ hai, 1 đại diện cho Táo, và 0 đại diện cho các món hàng khác.

Mảng thứ ba chứa chính các con số xuất hiện từ ô C2 đến C12.

Hãy nhớ rằng nhân 0 thì luôn bằng 0, và nhân 1 thì bằng chính nó, chúng ta có mảng cuối cùng chứa doanh số và những con số 0 – doanh số chỉ xuất hiện nếu hai mảng đầu tiên có số 1 ở cùng một vị trí, cụ thể là cả hai điều kiện xác định đều được đáp ứng; còn không thì sẽ hiển thị số 0:

VÍ DỤ 2. CÔNG THỨC SUMPRODUCT VỚI HÀM LÔGIC OR

Để công hay đếm có điều kiện các ô sử dụng hàm lôgic OR, hãy sử dụng dấu cộng (+) giữa các mảng.

Trong công thức Excel SUMPRODUCT, cũng như trong công thức mảng, dấu cộng đóng vai trò làm toán tử OR hướng dẫn Excel trả về giá trị TRUE nếu bất kỳ điều kiện nào trong biểu thức xác định được đáp ứng.

Ví dụ, để đếm tổng doanh số Táo và Chanh không phân biệt vùng miền, hãy sử dụng công thức này:

=SUMPRODUCT((B2:B12=”táo”)+(B2:B12=”chanh”))

Nói đơn giản, công thức trên có nghĩa là: Hãy đếm số ô nếu dải ô B2:B12=”táo” OR B2:B12=”chanh”.

Để tính tổng doanh số Táo và Chanh, hãy thêm một câu lệnh chứa dải ô Doanh số:

=SUMPRODUCT((B2:B12=”táo”)+(B2:B12=”chanh”), C2:C12)

Một trong những giải pháp khả thi đó là kết hợp hai hay nhiều hàm SUMIFS+SUMIFS hay COUNTIFS+COUNTIFS.

Cách khác đó là sử dụng hàm SUMPRODUCT trong đó:

Dấu hoa thị (*) được dùng như toán tử AND.

Dấu cộng (+) được dùng như toán tử OR.

Để đếm số lần Táo và Chanh được bán ở khu vực phía Bắc, hãy lập công thức với hàm lôgic sau:

=Count If ((Vùng miền=”miền Bắc”) AND ((Món hàng=”Táo”) OR (Món hàng=”Chanh”)))

Khi vừa sử dụng theo cú pháp hàm SUMPRODUCT, công thức sẽ có dạng như sau:

=SUMPRODUCT((A2:A12=”miền Bắc”)*((B2:B12=”táo”)+(B2:B12=”chanh”)))

Để tính tổng doanh số Táo và Chanh bán ra ở khu vục phía Bắc, hãy dùng công thức trên rồi thêm dải ô Doanh số cùng với hàm lôgic AND:

=SUMPRODUCT((A2:A12=”miền Bắc”)*((B2:B12=”táo”)+(B2:B12=”chanh”))*C2:C12)

Để công thức trông gọn hơn, bạn có thể gõ các biến vào các ô riêng biệt – Khu vực ở ô F1 và Món hàng ở ô F2 và H2 – rồi tham chiếu các ô này vào công thức:

Ở một trong những ví dụ trước, chúng ta đã bàn về công thức SUMPRODUCT dùng để tính trung bình có điều kiện. Cách dùng phổ biến khác của hàm SUMPRODUCT trong Excel đó là tính trung bình có trọng lượng trong đó mỗi giá trị có một trọng lượng nhất định.

Công thức SUMPRODUCT tính trung bình có trọng lượng tổng quát có dạng như sau:

SUMPRODUCT( values, weights) / SUM( weights)

Giả sử các giá trị nằm ở dải ô B2:B7 và trọng lượng ở dải ô C2:C7, công thức SUMPRODUCT tính trung bình có trọng lượng có dạng như sau:

=SUMPRODUCT(B2:B7,C2:C7)/SUM(C2:C7)

HÀM SUMPRODUCT ĐƯỢC DÙNG LÀM HÀM THAY THẾ CHO CÔNG THỨC MẢNG

Ngay cả khi bạn đọc bài viết này chỉ để có thêm thông tin và bạn không còn nhớ rõ các chi tiết nữa, hãy nhớ một điểm mấu chốt quan trọng – hàm SUMPRODUCT trong Excel xử lý mảng. Và vì hàm SUMPRODUCT có các khả năng của công thức mảng, nên nó có thể trở thành hàm thay thế dễ sử dụng cho công thức mảng.

Ưu điểm là gì? Về mặt cơ bản, bạn có khả năng quản lý công thức một cách dễ dàng mà không cần phải nhấp Ctrl + Shift + Enter mỗi lần bạn nhập một công thức mảng mới hay chỉnh sửa công thức mảng.

Ví dụ, chúng ta có thể sử dụng một công thức mảng đơn giản để đếm số ký tự trong dải ô xác định:

{=SUM(LEN( range))}

và biến nó thành công thức thông thường:

=SUMPRODUCT(LEN( range))

Để có thể ứng dụng tốt Excel vào trong công việc, chúng ta không chỉ nắm vững được các hàm mà còn phải sử dụng tốt cả các công cụ của Excel. Những hàm nâng cao giúp áp dụng tốt vào công việc như SUMIFS, COUNTIFS, SUMPRODUCT, INDEX + MATCH… Những công cụ thường sử dụng là Data validation, Conditional formatting, Pivot table…

Toàn bộ những kiến thức này các bạn đều có thể học được trong khóa học Excel từ cơ bản đến chuyên gia dành cho người đi làm

Tìm Hiểu Về Máy Lọc Nước Sử Dụng Công Nghệ Ro

Máy lọc nước RO là gì?

Máy lọc nước RO là thiết bị lọc sử dụng công nghệ thẩm thấu ngược giúp loại bỏ các cặn bẩn, tạp chất, vi khuẩn, virus, hóa chất tồn dư… có hại cho cơ thể, cho nguồn nước đầu ra sạch, đạt chuẩn, an toàn với người dùng.

Công nghệ lọc RO hay còn gọi “thẩm thấu ngược” là công nghệ lọc sử dụng màng RO với khả năng siêu lọc, có khả năng loại bỏ các vi khuẩn, tạp chất, hóa chất tồn dư… gây hại tỏng nước cấp đầu vào với kích thước lớn hơn 0.0001 micro mét.

Tìm hiểu về máy lọc nước sử dụng công nghệ RO: Đặc trưng sản phẩm

Điểm đặc biệt đầu tiên phải kể đến của các thiết bị lọc nước RO là màng lọc thẩm thấu ngược với khả năng loại bỏ đến 99,9% các vi khuẩn, cặn bẩn, kim loại nặng (chì, thủy ngân, asen…), hóa chất tồn dư… gây hại trong nước cấp đầu vào, mang lại nguồn nước tinh khiết đầu ra sạch, đạt chuẩn, có thể uống ngay không cần qua đun nấu. Điều này mang lại sự an toàn và thuận tiện hơn cho người dùng, phục vụ nhu cầu nước sạch sinh hoạt hàng ngày.

Đặc trưng của các thiết bị lọc nước RO là đều sử dụng máy bơm. Chính vì vậy, luôn đủ áp lực để đẩy dòng nước chảy qua màng lọc RO nói riêng và các cấp lọc khác trong kết cấu sản phẩm nói chung. Do đó, sản phẩm này hoàn toàn phù hợp với mọi điều kiện môi trường lắp đặt, từ chung cư cao tầng đến nhà ở mặt đất.

Điểm thu hút thứ ba trên thiết bị lọc RO là tính năng tương thích với mọi nguồn nước đầu vào, từ nước máy, nước mưa đến nước giếng… Điều này cho phép bạn có thể an tâm lắp đặt và sử dụng để lọc sạch nước đầu vào của gia đình mình trên mọi miền Tổ quốc.

Bên cạnh các ưu điểm nổi bật nêu trên, máy lọc RO cũng tồn tại một vài hạn chế nhất định mà người dùng cần lưu ý. Cụ thể:

– Có nước thải:

Đặc thù của máy lọc công nghệ thẩm thấu ngược là cho ra nước thải song song với việc tạo nước tinh khiết. Mặc dù vậy, trên thực tế lượng nước thải này rất ít, không đáng kể. Và nước này dù chưa sạch như nước tinh khiết nhưng lại sạch hơn so với nước cấp đầu vào. Do vậy, chúng ta có thể sử dụng nó trong hoạt động khác: rửa xe, giặt giũ… hoặc tái lọc bằng cách trữ tạm vào bể chứa. Như vậy là bạn vẫn hoàn toàn có thể sử dụng chúng một cách triệt để.

– Thiết bị dùng điện nên phụ thuộc vào tình trạng điện thực tế: điều này đồng nghĩa với việc nếu mất điện, máy không hoạt động được và lúc này bạn không có nước tinh khiết đầu ra

– Nước tinh khiết sạch nhưng thiếu hụt khoáng chất tự nhiên cần thiết cho cơ thể. Mặc dù vậy, trên thực tế, các dòng máy lọc nước RO cao cấp của Aquafilter lại vô cùng ưu việt vì có trang bị thêm lõi lọc với chức năng bù khoáng tự nhiên, khắc phục hoàn toàn vấn đề này.

Tìm hiểu về máy lọc nước sử dụng công nghệ RO: sản phẩm nổi bật

Thị trường máy lọc nước hiện đa dạng các sản phẩm, phong phú về chủng loại đến từ nhiều thương hiệu khác nhau. Mặc dù vậy, nổi bật nhất vẫn là các sản phẩm máy lọc nước sử dụng công nghệ RO đến từ Aquafilter của Châu Âu với các thiết bị sau:

– Máy lọc nước RO ion âm Elite

Ấn tượng với kết cấu 7 cấp lọc vượt trội, thiết bị lọc RO Elite là dòng máy lọc nước RO cao cấp nhất của Aquafilter. Máy không những mang đến cho người dùng nguồn nước đầu ra sạch đạt chuẩn mà còn đồng thời bổ sung khoáng chất tự nhiên cùng các ion âm có lợi cho sức khỏe. Chúng giúp cân bằng độ pH trong cơ thể để nâng cao đề kháng và giúp tinh thần luôn khoan khoái.

– Máy lọc nước RO 6 cấp kiểu có vỏ hộp/không vỏ hộp, bù khoáng bằng đá khoáng tự nhiên

Đây cũng là các thiết bị lọc rất xuất sắc của Aquafilter. Chúng được thiết kế 6 cấp lọc với hai kiểu dáng có vỏ hộp bao ngoài hoặc máy trần, thuận tienj lắp đạt dưới bồn rửa. Nước sạch đầu ra từ thiết bị đạt tiêu chuẩn quốc tế và có thể trực tiêp uống tại vòi không cần qua đun nấu. Chất lượng nước hoàn toàn phù hợp với quy chuẩn nước uống đóng chai tại Việt Nam. Đặc biệt, trong nước thành phẩm, các khoáng chất tự nhiên được bổ sung qua lỗi số 6, mang đến cho người dùng những tác dụng tốt nhất đối với sức khỏe.

Tất cả các sản phẩm nói trên đều được tích hợp công nghệ diệt khuẩn độc quyền Nano bạc BACinix và sử dụng lõi lọc không dùng chất kết dính hóa học. Bên cạnh đó, máy được nhập khẩu nguyên chiếc về thị trường Việt Nam nên hoàn toàn đảm bảo chất lượng.

Địa chỉ phân phối máy lọc nước công nghệ RO uy tín

– Văn phòng đại diện đặt tại: Ecogreen City, 286 Nguyễn Xiển, Thanh Xuân, Hà Nội.

– Số điện thoại: 0357995335

– Email: [email protected]

– Tên đại lý: Công ty TNHH Đầu tư thương mại dịch vụ Kỳ Long

– Địa chỉ: 57/27 Bàu Cát 9, Phường 14, Quận Tân Bình, TP. Hồ Chí Minh

– Số điện thoại: 0932180019

– Tên đại lý: Công ty TNHH một thành viên Đầu tư và thương mại Việt Hà

– Địa chỉ: 43 Trần Nguyên Hãn, Phường Trần Nguyên Hãn, TP. Bắc Giang

– Số điện thoại: 0966228226

Kết luận

Một Số Câu Hỏi Đáp Về Chuyển Đổi Vắc Xin 5 Trong 1 Trong Chương Trình Tiêm Chủng Mở Rộng

Câu hỏi 1: ComBE Five là vắc xin gì ? Tiêm vắc xin ComBE Five phòng được những bệnh gì?

Trả lời:

Vắc xin ComBE Five là vắc xin phối hợp “5 trong 1” DPT-VGB-Hib bao gồm giải độc tố vi khuẩn bạch hầu, uốn ván, vi khuẩn ho gà bất hoạt, kháng nguyên vi rút viêm gan B và kháng nguyên vi khuẩn Haemophilus influenzae týp b.

Lịch tiêm vắc xin ComBE Five trong tiêm chủng mở rộng cho trẻ dưới 1 tuổi vào lúc 2, 3 và 4 tháng tuổi để phòng các bệnh truyền nhiễm nguy hiểm: bạch hầu, uốn ván, ho gà, viêm gan B và viêm phổi/ viêm màng não mủ do vi khuẩn Hib.

Câu hỏi 2: Vắc xin ComBE Five được sản xuất ở đâu và đã được sử dụng ở những quốc gia nào?

Trả lời:

Vắc xin ComBE Five do Công ty Biological E, Ấn Độ sản xuất, vắc xin đạt tiêu chuẩn tiền thẩm định của Tổ chức Y tế thế giới (WHO) từ năm 2012. Tính tới nay hơn 400 triệu liều vắc xin ComBE Five đã được sử dụng ở 43 quốc gia.

Vắc xin ComBE Five đã được thử nghiệm lâm sàng ở Việt Nam và được chứng minh là an toàn. Vắc xin đã được Bộ Y tế cấp phép lưu hành tháng 5 năm 2024.

Câu hỏi 3: Vắc xin ComBE Five có gì khác với Quinvaxem về thành phần, hiệu quả và tính an toàn? 

Trả lời:

Vắc xin ComBE Five là vắc xin phối hợp có thành phần tương tự như vắc xin Quinvaxem gồm giải độc tố vi khuẩn bạch hầu, giải độc tố vi khuẩn uốn ván, vi khuẩn ho gà bất hoạt (toàn tế bào), kháng nguyên bề mặt vi rút viêm gan B và kháng nguyên vỏ vi khuẩn Hib.

Vắc xin có tác dụng phòng bệnh bạch hầu, ho gà, uốn ván, viêm gan B và viêm phổi/viêm màng não mủ do vi khuẩn Hib giống như vắc xin Quinvaxem.

Vắc xin ComBE Five có thành phần ho gà toàn tế bào vì vậy tính an toàn và hiệu quả của vắc xin ComBE Five tương tự như các vắc xin DPT-VGB-Hib có thành phần ho gà toàn tế bào và tương tự như vắc xin Quinvaxem.

Câu hỏi 4: Vắc xin có bị ảnh hưởng bởi nhiệt độ khi vận chuyển và bảo quản không?

Trả lời:

Trong quá trình vận chuyển, bảo quản các vắc xin thuộc chương trình TCMR luôn được bảo quản trong các thiết bị lạnh chuyên dụng như buồng lạnh, tủ lạnh, thùng lạnh của xe tải lạnh chuyên dụng, hòm lạnh, phích vắc xin, để đảm bảo vắc xin được bảo quản ở nhiệt độ từ +2oC đến +8oC.

Hầu hết các vắc xin đều có tính bền vững với nhiệt độ khi tiếp xúc với nhiệt độ cao (trên +8oC) hoặc nhiệt độ thấp (dưới +2oC). Việc bảo quản vận chuyển vắc xin ở nhiệt độ không thích hợp trong thời gian dài có thể ảnh hưởng tới chất lượng của vắc xin như làm giảm hiệu quả phòng bệnh của vắc xin hoặc có thể gây ra phản ứng tại chỗ tiêm.

Vắc xin ComBE Five có dạng trình bầy tương tự như vắc xin Quinvaxem vắc xin được đóng 01 liều/lọ và lọ vắc xin có gắn chỉ thị nhiệt độ (VVM) để giám sát việc tiếp xúc với nhiệt độ của từng lọ vắc xin trong quá trình bảo quản, vận chuyển trước khi sử dụng.

Câu hỏi 5: Vắc xin

ComBE Five

phải nhập khẩu từ nước ngoài, vậy công tác kiểm định và quản lý chất lượng được thực hiện như thế nào?

Trả lời:

Đối với các vắc xin nhập khẩu vào Việt Nam đều phải tuân thủ các quy định nghiêm ngặt của Việt Nam. Các vắc xin này phải thực hiện các thủ tục để đăng ký lưu hành bao gồm các thử nghiệm cần thiết và đảm bảo đạt được các tiêu chuẩn theo quy định của Việt Nam và của Tổ chức Y tế thế giới. Vắc xin chỉ được cấp phép sử dụng tại Việt Nam sau khi đã được kiểm định đạt được các yêu cầu của Việt Nam và thực hiện tất cả các thủ tục cần thiết. Từng lô vắc xin khi nhập vào Việt Nam đều được Viện Kiểm định quốc gia Vắc xin và Sinh phẩm y tế kiểm định và đạt tiêu chuẩn về an toàn trước khi đưa vào sử dụng.

Câu hỏi 6: Vắc xin

ComBE Five đã được sử dụng

 

ở Việt Nam chưa, sau tiêm chủng có cháu nào bị phản ứng nặng không?

Trả lời:

Vắc xin đã được sử dụng tại thực địa 4 huyện của tỉnh Hà Nam năm 2024 và 4 tỉnh trong tháng 11/2024, sau tiêm chủng chỉ ghi nhận một số phản ứng thông thường xuất hiện vào ngày thứ nhất sau tiêm vắc xin bao gồm phản ứng tại chỗ tiêm như đau, quầng đỏ với tỷ lệ từ 5-15%, sốt  tỷ lệ 34-39%.

Câu hỏi 7: Vắc xin ComBE Five sử dụng ở các quốc gia khác thì có phản ứng sau tiêm như thế nào.

Trả lời:

Vắc xin đã được sử dụng với hơn 400 triệu liều ở 43 quốc gia, qua thử nghiệm lâm sàng và các nước đã sử dụng không có thông tin về phản ứng nặng

Theo báo cáo của nhà sản xuất gửi Bộ Y tế Ấn Độ, từ 21/11/2024 đến 20/11/2024, tổng số liều ComBE Five được sử dụng là khoảng 40 triệu liều,  có 11 trường hợp ghi nhận có phản ứng nghiêm trọng sau khi tiêm chủng, trong đó có 5 trường hợp sốt cao, co giật, khóc dai dẳng, nôn và đều qua khỏi và không để lại di chứng. Còn lại là 6 trường hợp tử vong (2 trường hợp sặc sữa,1 trường hợp viêm phổi, 1 trường hợp nhiễm trùng huyết nặng, 1 trường hợp không rõ nguyên nhân và 1 trường hợp có hội chứng chết đột ngột của trẻ sơ sinh (SIDS). (số liệu của Bộ Y tế Ấn Độ)

Phần II. Hỏi đáp về kế hoạch chuyển đổi sử dụng vắc xin DPT-VGB-Hib trong TCMR

Câu hỏi 8 : Vì sao phải chuyển đổi sử dụng vắc xin ComBE Five thay thế vắc xin Quinvaxem?

Trả lời:

Vắc xin phối hợp 5 trong 1 (DPT-VGB-Hib) sử dụng trong chương trình TCMR từ khi bắt đầu triển khai tới nay có tên thương mại là Quinvaxem do công ty Berna Biotech, Hàn Quốc sản xuất. Tới nay Dự án TCMR đã sử dụng khoảng 41 triệu liều vắc xin Quinvaxem tiêm chủng miễn phí cho trẻ dưới 1 tuổi. Vắc xin Quinvaxem được sử dụng an toàn và hiệu quả trong tiêm chủng mở rộng giúp giảm tỷ lệ mắc các bệnh truyền nhiễm nguy hiểm ở trẻ em.

Hiện nay, nhà sản xuất Berna Biotech đã ngừng sản xuất vắc xin Quinvaxem, số vắc xin Quinvaxem còn lại trong TCMR dự kiến sẽ sử dụng đến hết tháng 5/2024. Bộ Y tế đã có kế hoạch chuyển đổi sử dụng vắc xin Quinvaxem bằng loại vắc xin phối hợp 5 trong 1 tương tự về thành phần và hiệu quả phòng bệnh. Vắc xin phối hợp 5 trong 1 được lựa chọn để thay thế vắc xin Quinvaxem có tên thương mại là vắc xin ComBE Five.

Câu hỏi 9: Kế hoạch chuyển đổi sử dụng vắc xin ComBE Five trong TCMR?

Trả lời:

Dự kiến việc chuyển đổi sử dụng vắc xin ComBE Five sẽ được triển khai trên toàn quốc cuối quí II năm 2024.

Trước khi triển khai trên toàn quốc, dự án tiêm chủng mở rộng sẽ triển khai trước tại 4 tỉnh là Hà Nam, Bình Định, Kon Tum, Đồng Tháp vào tháng 6 năm 2024 để có kinh nghiệm về triển khai trên diện rộng tại hơn 11.000 điểm tiêm chủng

Câu hỏi 10: Các hoạt động chuẩn bị, triển khai chuyển đổi sử dụng vắc xin ComBE Five?

Trả lời:

Dự án TCMR đã xây dựng kế hoạch triển khai bao gồm kế hoạch triển khai trên qui mô nhỏ tại 4 tỉnh và triển khai trên toàn quốc, xây dựng tài liệu hướng dẫn để phổ biến cho cán bộ TCMR các tuyến.

Ngày 28/3/2024,  Bộ Y tế đã ban hành kế hoạch truyền thông số 271/KH-BYT về một số vắc xin mới sẽ đưa vào chương trình TCMR năm 2024 trong đó có kế hoạch chuyển đổi sử dụng vắc xin 5 trong 1 trong TCMR.

Sau khi có văn bản chính thức về việc sử dụng vắc xin ComBE Five, các trạm y tế xã/phường sẽ có thông báo và hướng dẫn cho các bậc cha mẹ đưa trẻ đi tiêm vắc xin ComBE Five.

Câu hỏi 11: Việc sử dụng vắc xin Quinvaxem trong giai đoạn hiện tại?

Trả lời:

Số vắc xin Quinvaxem còn lại trong TCMR dự kiến sẽ sử dụng đến hết tháng 5/2024.

Hiện nay, vắc xin Quinvaxem vẫn tiếp tục được sử dụng cho trẻ dưới 1 tuổi trong chương trình tiêm chủng mở rộng cho tới khi được thay thế  bằng vắc xin ComBE Five để đảm bảo trẻ em được tiêm chủng đầy đủ. Lịch tiêm chủng vắc xin DPT-VGB-Hib không thay đổi, trẻ dưới 1 tuổi cần được tiêm đủ 3 mũi vào lúc 2,3 và 4 tháng tuổi. Trẻ em được tiêm 1 hoặc 2 mũi vắc xin Quinvaxem sẽ tiếp tục sử dụng vắc xin thay thế cho các mũi tiêm tiếp theo.

Bộ Y tế khuyến cáo các bậc cha mẹ tiếp tục đưa con đi tiêm chủng đầy đủ, đúng lịch các vắc xin trong chương trình tiêm chủng mở rộng, để phòng các bệnh truyền nhiễm nguy hiểm.

Câu hỏi 12: Nếu các địa phương vẫn còn vắc xin Quinvaxem ở thời điểm bắt đầu triển khai vắc xin ComBE Five thì sẽ hướng dẫn các địa phương triển khai như thế nào?

Trả lời:

Nếu vẫn còn vắc xin Quinvaxem ở thời điểm bắt đầu triển khai vắc xin ComBE Five thì  địa phương cần thực hiện các nội dung sau:

Rà soát số lượng vắc xin Quinvaxem tồn ở từng đơn vị vào thời điểm chuyển đổi.

-   Đối với các huyện không còn đủ vắc xin sử dụng cho toàn huyện trong 1 tháng, chủ động điều phối để sử dụng tập trung tại một số xã. Cấp phát vắc xin ComBE Five cho huyện để cung ứng sử dụng tại các xã còn lại.

Phần III. Một số câu hỏi từ các bà mẹ và cộng đồng

Câu hỏi 13: 4 tỉnh triển khai vắc xin ComBE Five trước là các tỉnh nào, vắc xin được sử dụng tại các địa phương này thì con tôi có phải là đối tượng thí điểm không?

Trả lời:

Theo kế hoạch vắc xin ComBE Five sẽ được triển khai trước tại 4 tỉnh là Hà Nam, Bình Định, Kon Tum, Đồng Tháp. Việc triển khai trước tại một số địa phương  nhằm rút kinh nghiệm cho cán bộ y tế trong việc chuyển đổi sử dụng vắc xin mới, bao gồm cung ứng vắc  xin, truyền thông, tư vấn cho bà mẹ để đảm bảo tỷ lệ tiêm chủng và an toàn tiêm chủng, sau khi triển khai tại 4 địa phương này 1 tháng, vắc xin ComBE Five sẽ được triển khai trên toàn quốc tại 63 tỉnh/thành phố trên toàn quốc.

Câu hỏi 14: Là một người mẹ, tôi rất băn khoăn khi phải quyết định có nên cho con mình đi tiêm vắc xin ComBE Five. Tôi mong muốn được giải đáp đầy đủ hơn về những lợi ích và nguy cơ có thể có khi cho con đi tiêm phòng loại vắc xin này?

Trả lời:

Vắc xin ComBE Five là loại vắc xin phối hợp phòng được 5 bệnh: bạch hầu, ho gà, uốn ván, viêm gan B, viêm phổi/viêm màng não mủ do vi khuẩn Hib. Đây là những bệnh truyền nhiễm nguy hiểm. Trẻ nhỏ dễ mắc các bệnh này, ảnh hưởng tới sức khỏe và sự phát triển của trẻ. Sử dụng vắc xin phối hợp ComBE Five sẽ giảm số mũi tiêm cho trẻ, tiết kiệm thời gian cho các bà mẹ và gia đình đồng thời trẻ em có cơ hội phòng được 5 bệnh truyền nhiễm nguy hiểm.

Tuy nhiên, cũng như các thuốc hay loại vắc xin khác khi tiêm đều có thể xảy ra các phản ứng. Theo khuyên cáo của Tổ chức Y tế thế giới, các phản ứng nặng thường rất hiếm gặp.

Sau tiêm chủng trẻ có thể có một số các phản ứng thông thường như sốt nhẹ (<38,5°C), đau hoặc sưng tấy nhẹ tại chỗ tiêm, quấy khóc,… Tuy nhiên, các phản ứng này sẽ tự khỏi trong vòng 1 ngày.

Một số phản ứng có thể gặp khi sử dụng vắc xin ComBE Five cũng giống như sử dụng vắc xin DPT-VGB-Hib khác hoặc vắc xin DPT có thành phần ho gà toàn tế bào như:

+  Khóc dai dẳng trên 3 giờ trong vòng 48 giờ sau tiêm vắc xin với tỷ lệ là <1/100 liều sử dụng.

+  Co giật có kèm theo sốt hoặc không sốt trong vòng 3 ngày sau tiêm vắc xin với tỷ lệ là <1/100 liều sử dụng.

+  Giảm trương lực cơ, giảm đáp ứng xảy ra trong vòng 48 giờ với tỷ lệ là 1-2/1 triệu liều.

+  Sốc phản vệ có thể xảy ra với tỷ lệ 20/1 triệu liều.

Câu hỏi 15: Trẻ đã được tiêm 1 hoặc 2 mũi vắc xin Quinvaxem thì sẽ được tiêm vắc xin ComBE Five tiếp theo như thế nào?

Trả lời:

Lịch tiêm chủng 3 mũi vắc xin DPT-VGB-Hib áp dụng cho khi trẻ 2, 3 và 4 tháng tuổi. Nếu trẻ đã tiêm 1 hoặc 2 liều vắc xin Quinvaxem thì sẽ tiêm mũi tiếp theo với vắc xin ComBE Five mà không cần phải tiêm lại từ mũi đầu. Lưu ý khoảng cách giữa các mũi tiêm tối thiểu là 1 tháng.

Câu hỏi 17: Trẻ đã tiêm 1 hoặc 2 mũi vắc xin DPT-VGB-Hib cách đây 4-5 tháng vậy có phải tiêm lại từ đầu không?

Trả lời:

Lịch tiêm chủng 3 mũi vắc xin ComBE Five là 2, 3 và 4 tháng tuổi. Nếu liều vắc xin ComBE Five nào bị bỏ lỡ hoặc tiêm muộn thì cần được tiêm sớm vào thời gian sau đó mà không cần phải tiêm lại từ mũi đầu. Lưu ý khoảng cách giữa các mũi tiêm tối thiểu là 1 tháng.

Câu hỏi 18: Con tôi trên 1 tuổi có được tiêm vắc xin

ComBE Five miễn phí trong TCMR

không?

            Vắc xin DPT-VGB-Hib trong TCMR hiện tại đủ để tiêm chủng miễn phí cho trẻ dưới 1 tuổi. Nếu trẻ chưa được tiêm chủng đúng lịch lúc 2, 3 và 4 tháng tuổi thì cần phải tiêm chủng cho trẻ càng sớm càng tốt trước 1 tuổi

Nếu trẻ trên 1 tuổi thì có thể tiêm loại vắc xin tương tự trong tiêm chủng dịch vụ.

Câu hỏi 19: Các cháu đang tiêm vắc xin dịch vụ có thể quay trở lại tiêm vắc xin ComBE Five miễn phí trong TCMR không?

Trả lời:

Có thể cho trẻ dưới 1 tuổi tiêm vắc xin ComBE Five miễn phí trong tiêm chủng mở rộng nếu cháu chưa được tiêm đủ mũi vắc xin theo lịch tiêm chủng.

Điều cần lưu ý là vắc xin phối hợp ComBE Five phòng các bệnh bạch hầu, ho gà, uốn ván, viêm gan B và viêm phổi, viêm màng não mủ do vi khuẩn Hib. Vắc xin dịch vụ có nhiều loại nên các bà mẹ cần mang theo phiếu/sổ tiêm chủng của con mình để cán bộ y tế biết được trẻ đã tiêm những vắc xin gì và có chỉ định tiêm đúng cho trẻ.

Câu hỏi 20: Trường hợp nào trẻ không tiêm được vắc xin ComBE Five?

Trả lời:

Cũng giống như vắc xin có thành phần tương tự DPT-VGB-Hib (Quinvaxem) Không tiêm vắc xin ComBE Five cho trẻ nếu tiền sử có phản ứng mạnh đối với liều tiêm trước hoặc có phản ứng mạnh đối với vắc xin bạch hầu, ho gà, uốn ván (DPT) hoặc vắc xin viêm gan B, vắc xin Hib như:

+  Sốt cao trên 39ºC trong vòng 48 giờ sau tiêm vắc xin.

+  Sốc trong vòng 48 giờ sau tiêm vắc xin.

+  Khóc dai dẳng trên 3 giờ trong vòng 48 giờ sau tiêm vắc xin.

+  Co giật có kèm theo sốt hoặc không sốt trong vòng 3 ngày sau tiêm vắc xin.

Hoãn tiêm cho trẻ nếu trẻ đang ốm, sốt hoặc mắc các bệnh cấp tính.

Câu hỏi 21: Để đảm bảo an toàn tiêm chủng các bậc cha mẹ cần phải làm gì khi đưa con đi tiêm chủng?

Trả lời:

Khi đưa trẻ đi tiêm chủng cần mang theo phiếu/sổ tiêm chủng cá nhân.

Chủ động thông báo cho cán bộ y tế về tình trạng sức khỏe của con mình như đang ốm, sốt, tiền sử dị ứng hay phản ứng mạnh với những lần tiêm chủng trước như sốt cao, quấy khóc kéo dài, sưng đau lan rộng tại vị trí tiêm hoăc có bất thường gì khác.

Yêu cầu các cán bộ y tế thông báo về các loại vắc xin tiêm chủng cho trẻ và hướng dẫn theo dõi, chăm sóc trẻ sau tiêm chủng.

Chủ động đề nghị cán bộ y tế kiểm tra sức khỏe của trẻ trước khi tiêm.

Đưa trẻ đến điểm tiêm chủng theo đúng thời gian, địa điểm đã được thông báo để đảm bảo điểm tiêm chủng không quá đông và cán bộ y tế thuận tiện thực hành tiêm chủng an toàn.

Câu hỏi 22: Các bà mẹ phải làm gì để có thể phát hiện sớm những phản ứng sau tiêm chủng?

Trả lời:

Sau khi tiêm chủng trẻ cần phải ở lại 30 phút tại điểm tiêm chủng để được cán bộ y tế theo dõi và kịp thời xử trí nếu có những phản ứng bất thường xảy ra.

Theo dõi trẻ thường xuyên tại nhà trong vòng 1 ngày sau tiêm chủng về các dấu hiệu sau: toàn trạng, tinh thần, ăn ngủ, thở, nhiệt độ, phát ban, phản ứng tại chỗ tiêm.

Câu hỏi 23: Sau khi tiêm về nếu cháu bị sốt, quấy khóc thì tôi phải làm gì?

Trả lời:

Sau tiêm chủng trẻ có thể có những biểu hiện như sốt nhẹ, đau tại chỗ tiêm, các bà mẹ cần chú ý đến trẻ hơn, cho trẻ bú nhiều hơn, cho bú khi trẻ thức, theo dõi nhiệt độ, không đắp bất cứ thứ gì lên vị trí tiêm.

Khi trẻ sốt, cần phải cặp nhiệt độ và theo dõi sát, dùng thuốc hạ sốt cho trẻ theo sự chỉ dẫn của cán bộ y tế. Nếu trẻ không đỡ cần đưa trẻ tới cơ sở y tế để được thăm khám, xử trí.

Câu hỏi 24: Những biểu hiện nào sau tiêm chủng là bất thường, khi nào cần đưa trẻ đến cơ sở y tế?

Trả lời:

Nếu cha mẹ không yên tâm về những phản ứng của con sau khi tiêm chủng có thể trực tiếp đến gặp cán bộ y tế để được tư vấn cách theo dõi và chăm sóc trẻ.

Dự án TCMR

Regex Trong Java Với Ví Dụ Cụ Thể

Regular expresstions được sử dụng để định nghĩa các chuỗi mô hình dùng trong tìm kiếm, cập nhật etc. Regular expresstions hay gọi ngắn là java regex.

Lý do sử dụng Java Regex

Lấy ví dụ nhỏ rằng cho một chuỗi str, kiểm tra nếu chuỗi có chứa các ký số thì báo là không hợp lệ, ngược lại hợp lệ.

Mã 1: Lặp từng ký tự của chuỗi và kiểm tra xem nếu có bất kỳ một ký số nào thì chuỗi không hợp lệ.

public class Main { public static void main(String[] args) { String str = "shareprog1ramming"; if (isValid(str)) { System.out.println("Hop le"); } else { System.out.println("Khong hop le"); } } private static boolean isValid(String str) { for (int i = 0; i < str.length() - 1; i++) { return false; } } return true; } }

Output:

Khong hop le

Mã 2: Vẫn là ý tưởng nếu chuỗi có bất kỳ ký số nào thì là không hợp lệ. Sử dụng java regex.

import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String str = "shareprog1ramming"; String pattern = "\D+"; if (Pattern.matches(pattern, str)) { System.out.println("Hop le"); } else { System.out.println("Khong hop le"); } } }

Output:

Khong hop le

Ở trên chuỗi pattern được gọi là một chuỗi mẫu dùng để áp dụng trong java regex. Ý nghĩa “\D+” chuỗi không được chứ các ký số [0-9].

So với Mã 1 thì Mã 2 có phần ngắn gọn hơn. Đó chỉ là một trong các ứng dụng của java regex. Giờ thì đi tìm hiểu xem các tính năng và cách sử dụng của java regex nào.

Pattern class Pattern.matches()

Ở phần đầu mình đã dùng matches() để kiểm tra xem chuỗi đầu vào không được chứa các ký số. Chuỗi mẫu pattern \D+ dùng để kiểm tra chuỗi chỉ chứa các các ký tự.

Như vậy method matches() là một method cho phép kiểm tra tính hợp lệ của chuỗi theo một chuỗi mẫu được định nghĩa trước.

Pattern.compile()

Giả sử mình có danh sách các chuỗi ký tự, mình muốn tìm các chuỗi chứ ký tự a, b, c không phân biệt chữ hoa hay chữ thường. Cho ví dụ str1 = ‘faaBcf’, str2 = ‘abcfd’ hoặc str3 = ‘ABC’ đều hợp lệ.

Vậy phải làm cách nào đây? Liệt kê các trường hợp có thể có rồi lập thành các chuỗi mẫu để matches()?

import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { strs.add("agabc"); strs.add("agg1c"); strs.add("klA13c"); strs.add("bgaBc"); strs.add("afABC"); String patternStr = ".*abc.*"; Pattern pattern = Pattern.compile(patternStr, Pattern.CASE_INSENSITIVE); for (String str : strs) { Matcher matcher = pattern.matcher(str); if (matcher.matches()) { System.out.println(str); } } } }

Output:

Khi chúng ta sử dụng compile() sẽ nhận được một instance của Pattern. Sử dụng Matcher. matches() để kiểm tra tính hợp lệ của chuỗi.

Pattern.split()

Ngoài công dụng kiểm tra và tìm kiếm, Pattern cũng cung cấp cơ chế cắt chuỗi dựa trên chuỗi mẫu regex. Giống như matcher() split() cũng được dùng từ instance được tạo ra từ compile().

Nếu các bạn dùng cách cắt chuỗi bình thường thì chỉ cắt theo ký tự ngắt xác định. Còn với split() cắt với chuỗi mẫu sẽ giúp cho việc cắt chuỗi linh hoạt hơn.

Ví dụ mình có chuỗi “share235programming52.net” không biết vì lý do gì mà nó bị chèn các chữ số vào, bây giờ mình muốn lọc các chữ số ra để lấy lại chuỗi vốn có.

Mình sẽ dùng split() với đoạn chuỗi mẫu khớp với các chữ số, để khi gặp các chữ số thì nó sẽ cắt chuỗi. Sau đó nối mảng nhận được từ split() sẽ được chuỗi ban đầu.

import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String str = "share235programming52.net"; String patternStr = "\d+"; Pattern pattern = Pattern.compile(patternStr, Pattern.CASE_INSENSITIVE); String[] results = pattern.split(str); StringBuilder primitive = new StringBuilder(); for (String s : results) { primitive.append(s); } System.out.println(primitive.toString()); } }

Output:

shareprogramming.net

Matcher Class

Ở phần trên mình đã giới thiệu sơ qua Matcher class bằng việc sử dụng method matches(). Phần này chúng ta sẽ tìm hiểu xem thử Matcher class còn có những thứ gì nữa nào.

Để kiểm tra tính hợp lệ dựa trên chuỗi mẫu của một Matcher instance được tạo ra từ Pattern.matcher()

Matcher matcher = pattern.matcher(str); if (matcher.matches()) { System.out.println(str); }

Tương tự matches(), chỉ khác một điểm duy nhất là lookingAt() sẽ kiểm tra chuỗi regex tại đầu chuỗi, trong khi matches() sẽ kiểm tra trên toàn bộ chuỗi.

Method find() thường được dùng để tìm kiếm chuỗi con hoặc chuỗi regex trong chuỗi input

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String str = "share235programming52.net"; String patternStr = "program"; Pattern pattern = Pattern.compile(patternStr, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(str); boolean found = matcher.find(); System.out.println(found ? "Tim thay" : "Khong tim thay"); } }

Output

start() và end()

Cả 2 method này được dùng chung với find() để lấy vị đầu và cuối của chuỗi tìm kiếm được.

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String content = "ZZZ AA PP AA QQQ AAA ZZ"; String string = "AA"; Pattern pattern = Pattern.compile(string); Matcher matcher = pattern.matcher(content); while(matcher.find()) { System.out.println("Index: "+ matcher.start() + " - " + matcher.end()); } } }

Output

Nếu bạn muốn tìm một chuỗi trong mảng ứng với mỗi chuỗi cho trước. Hoặc chúng ta loop qua các phần tử của mảng và sử dụng equals() để so sánh, hoặc chúng ta có thể dùng regex như sau:

Pattern.matches("shareprogramming", "shareprogramming"); Character classes

Character class cho phép định nghĩa một tập các ký tự và cho phép trùng khớp với một ký tự trong chuỗi input đầu vào.

Cho ví dụ:

Pattern.matches(“[pqr]”, “abcd”) chúng ta sẽ nhận được false vì p, q, r đều không có trong chuỗi input. Pattern.matches(“[pqr]”, “r”) true vì r được tìm thấy trong chuỗi input.Pattern.matches(“[pqr]”, “pq”) false vì r không chứa một trong hai.

Cách sử dụng character class:

[abc]: Phù hợp với chuỗi chỉ chứa duy nhất một trong ba ký tự a, b hoặc c.

[^abc]: Phù hợp với chuỗi chỉ chứa một ký tự ngoại trừ a, b hoặc c.

[a-zA-Z]: Phù hợp với chuỗi chỉ chứa một ký tự trong khoảng a-z và A-Z.

[a-d[m-p]]: Phù hợp với chuỗi chỉ chứa một ký tự trong khoảng a-d và m-p. (phép hội)

[a-z&&[abc]]: Phù hợp với chuỗi chỉ chứa một ký tự trong các ký tự a, b hoặc c. (phép giao)

[a-z&&[^bc]]: Phù hợp với chuỗi chỉ chứa một ký tự trong trong khoảng a-z ngoại trừ b và c.

[a-z&&[^m-p]]: Phù hợp với chuỗi chỉ chứa một ký tự trong trong khoảng a-z ngoại các ký tự trong khoảng m-p.

Các Character class dựng sẵn

Để dễ dàng cho chúng ta, java xây dựng một số character class:

w

Một ký tự hoặc ký số

W

Không phải một ký tự hoặc một ký số

Note: Ở trên các bạn thấy các chuỗi regex đều chỉ chứa một dấu . Ấy vậy mà trong ví dụ thì lại có đến 2 dấu ?. Thật ra trong java một dấu là một ký tự escape. Thế nên để biểu diễn dấu chúng ta phải sử dụng đến 2 cấu đấy.

Boundary Matchers

Ở các phần trên chúng ta đã biết làm sao để tìm so khớp một chuỗi. Giờ đây, boundary matchers giúp chúng ta tìm kiếm chính xác vị trí xuất hiện trong chuỗi input.

Chúng ta một danh sách các boundary matchers sau:

^ – Đặt trước từ được khớp

$ – Đặt cuối từ đựợc khớp

b – Kiểm tra mẫu bắt đầu hay kết thúc trên word boundary.

B – Kiểm tra mẫu bắt đầu hay kết thúc không trên word boundary.

A – Bắt đầu chuỗi input.

G – Yêu cầu đối sánh chỉ xảy ra một lần vào cuối lần đối sánh trước.

Z – Cuối cùng của chuỗi input nhưng có thể cho cùng các terminators.

z – Cuối cùng của chuỗi input.

Ví dụ: Input = “hgaishga” đi tìm vị trí của str = “hga” trong chuỗi input.

^ – đặt trước từ được khớp

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String txt = "hgaishga"; String regex = "^hga"; Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(txt); while (matcher.find()) { System.out.println("Start: " + matcher.start()); System.out.println("End: " + matcher.end()); } } }

Output: start: 0 – end: 3

$ – đặt sau từ được khớp

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String txt = "hgaishga"; String regex = "hga$"; Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(txt); while (matcher.find()) { System.out.println("Start: " + matcher.start()); System.out.println("End: " + matcher.end()); } } }

Output: start 5 – end: 8

b – Kiểm tra mẫu bắt đầu hay kết thúc trên word boundary

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String txt = "hgaishga"; String regex1 = "\bhga"; Pattern pattern1 = Pattern.compile(regex1, Pattern.CASE_INSENSITIVE); Matcher matcher1 = pattern1.matcher(txt); while (matcher1.find()) { System.out.println("Start: " + matcher1.start()); System.out.println("End: " + matcher1.end()); } System.out.println(); String regex2 = "hga\b"; Pattern pattern2 = Pattern.compile(regex2, Pattern.CASE_INSENSITIVE); Matcher matcher2 = pattern2.matcher(txt); while (matcher2.find()) { System.out.println("Start: " + matcher2.start()); System.out.println("End: " + matcher2.end()); } } }

Output:

Start: 0End: 3

Start: 5End: 8

Input = hgahga hga , regex = \Dhga

Quantifiers

Quantifiers cho phép chỉ định số lần xuất hiện trong chuỗi input. Chúng ta có 3 loại quantifiers sau: Greedy, Reluctant, Possesive.

Với 3 loại trên về mặt ý nghĩa là giống nhau, thế nhưng trong một các trường hợp cụ thể chúng sẽ thực hiện theo cách riêng của nó. Chúng ta sẽ đi qua các ví dụ để xem chúng khác nhau thế nào!

Chuỗi regex: a?Input string: aTìm thấy “a” bắt đầu tại 0 kết thúc tại 1Tìm thấy “” bắt đầu tại 1 kết thúc 1

Chuỗi regex: a*Input string: aTìm thấy “a” bắt đầu tại 0 kết thúc taị 1Tìm thấy “” bắt đầu tại 1 kết thúc 1

Chuỗi regex: a+Input string: aTìm thấy “a” bắt đầu tại 0 kết thúc taị 1

Qua ví dụ trên ta thấy a? và a* đều có kết quả Tìm thấy “” bắt đầu tại 1 kết thúc 1. Tương ứng với không xuất hiện trong chuỗi input.

Chuỗi regex: a?Input string: aaaaaTìm thấy “a” bắt đầu tại 0 kết thúc tại 1Tìm thấy “a” bắt đầu tại 1 kết thúc tại 2Tìm thấy “a” bắt đầu tại 2 kết thúc tại 3Tìm thấy “a” bắt đầu tại 3 kết thúc tại 4Tìm thấy “a” bắt đầu tại 4 kết thúc tại 5Tìm thấy “” bắt đầu tại 5 kết thúc 5

Chuỗi regex: a*Input string: aaaaaTìm thấy “a” bắt đầu tại 0 kết thúc taị 5Tìm thấy “” bắt đầu tại 5 kết thúc 5

Chuỗi regex: a+Input string: aTìm thấy “a” bắt đầu tại 0 kết thúc taị 5

Sự khác nhau giữa Greedy, Reluctant, Possessive

Greedy: Mặc định nó sẽ cố gắng chuỗi dài nhất phù hợp với pattern đã cho. Trước khi xứ lý Greedy sẽ đọc toàn bộ chuỗi và cố gắng so khớp, nếu không thoả nó tiến hành bỏ ký tự cuối ra và tiếp tục so sánh cho đến khi tìm thấy.

Reluctant: Nó ngược lại với greedy. Nó bắt đầu từ ký tự đầu tiên và xử lý một ký tự tại một thời điểm.

Possessive: Tương tự như Greedy, điểm khác nhau lớn nhất là Possessive không xoá ký tự cuối cùng và tiến hành kiếm tra lại.

Chuỗi Regex: .*foo

Chuỗi Regex: .*?foo

Chuỗi Regex: .*+foo

Nhìn vào ví dụ đầu tiên sử dụng greedy quantifier, .* dùng để tìm “anything”, cho nên riêng .* nó đã tìm ra chuỗi xfooxxxxxxfoo, nhưng còn ký chuỗi foo đằng sau nên nó sẽ tiến hành bỏ đi ký tự cuối cùng, đến khi bỏ được 3 ký tự cuối chúng ta sẽ tìm thấy kết quả so sánh khớp đầu tiên là (xfooxxxxxx cho .* và foo). Tiếp tục đến cuối ta có xfoo.

Ở ví dụ thứ hai, reluctant quantifier xử lý tuần tự từ phần tử đầu tiên đến hết ta cũng có 2 chuỗi thoả xfoo, xfooxxxxxxfoo.

Và ví dụ cuối cùng chúng ta không tìm thấy bất kỳ chuỗi nào, vì .* chiếm trọn chuỗi input, vì Possessive quantifier không có cơ chế bỏ đi ký tự cuối và tiếp tục so sánh nên ta không có kết quả nào thoả mãn.

Code demo

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { Pattern p = Pattern.compile(".*?foo"); Matcher m = p.matcher("xfooxxxxxxfoo"); while (m.find()) System.out.println("Start: " + m.start() + " to " + (m.end())); } }

1, Viết chương trình kiểm tra ký tự đầu tiên của chuỗi có phải là chữ in hoa hay không?

2, Viết chương trình kiểm tra định dạng của địa chỉ email. Cho email đinh dạng đính thoả mãn các điều kiện sau:

Bắt đầu bằng ký tự a-z hoặc A-Z – (^[a-zA-Z]+).

Email không được chứa các ký tự đặt biệt – ([a-zA-Z0-9]*)

@ xuất hiện 1 lần trong sau nó là các chữ cái, ví dụ @gmail, @yahoo etc – (@{1}[a-zA-Z]+).

Email kết thúc với .com – mail.com$

Source code tham khảo

3, Kiểm tra định dạng của số điện thoại. Biết rằng số điện thoại có 10 chữ số, bắt đầu bằng số 0. Số tiếp theo không được là số 0.

Source code tham khảo

Phân Biệt Cách Sử Dụng Của “Either” Và “Neither”

Mẹo tìm Google: từ khóa cần tìm + chúng tôi

Gần đây, Tiếng Anh Thật Dễ nhận được rất nhiều yêu cầu hướng dẫn phân biệt cách sử dụng của “either” và “neither”. Cả 2 từ có cách sử dụng giống như “so” và “too”, đều có nghĩa là “cũng”. Tuy nhiên “either” và “neither” dùng để nói về “cũng” trong DẠNG PHỦ ĐỊNH (ngầm hiểu là “cũng không”).

Phân biệt cách sử dụng của “either” và “neither”

Rất đơn giản, bạn hãy nhớ: “either” đi với trợ động tự dạng phủ định (do not/does not/did not). Còn “neither” đi với động từ dạng khẳng định (do/does/did).

I didn't go to the party, and you didn't either. I didn't go to the party, and neither did you.

Mẹo nhớ đơn giản, vì “neither” đã có “n” đứng trước (n là viết tắt của not) nên sẽ đi với trợ động từ dạng khẳng định.

He's not very good at painting walls, and she isn't either. He's not very good at painting walls, and neither is she. She can't wait until the baby is born, and he can't either. She can't wait unitl the baby is born, and neither can he.

“Either” đứng ở cuối của câu, sau trợ động từ ở dạng phủ định, còn “Neither” đứng sau từ nối giữa 2 vế câu (thường là “and”), sau đó đến trợ động từ và động từ chính.

“Neither” cũng thường được sử dụng để rút gọn câu trả lời với ý nghĩa “cũng không”

A: I don't speak French. (Tôi không nói tiếng Pháp) B: Neither do I.(Tôi cũng không). Trong thực tế, có thể trả lời bằng cụm "Me neither" C: He isn't ready to go.(Anh ta chưa sẵn sàng để đi) D: Neither are we.(Chúng ta cũng chưa sẵn sàng để đi) Phân biệt cách sử dụng của “either – or” và “neither – nor” Cách sử dụng “either – or”

“Either…or” được sử dụng để đưa ra sự lựa chọn giữa 2 khả năng. Hiểu đơn giản là “Hoặc cái này… hoặc cái kia”

Either Mike or Lisa will be there. (Hoặc Mike hoặc Lisa sẽ ở đó) Either you leave me alone or I will call the police. (Hoặc bạn để tôi yên hoặc tôi sẽ gọi cảnh sát) He doesn't speak either English or French. (Anh ta không nói tiếng Anh cũng không nói tiếng Pháp) You can either help us or go to your room. (Bạn có thể giúp chúng tôi hoặc đi vào phòng của bạn) Cách sử dụng “neither – nor”

“Neither…nor” được sử dụng để phủ định 2 khả năng. Hiểu đơn giản là “Đều không…”

Neither Mike nor Lisa will be there. (Cả Mike và Lisa đều sẽ không ở đó) He speaks neither English nor French. (Anh ta không nói tiếng Anh cũng như tiếng Pháp) We brought neither coffee nor tea. (Chúng ta cũng không mang cà phê và cũng không mang trà) I will neither help you nor go to my room. (Tôi sẽ không giúp bạn cũng không đi vào phòng tôi)

Cập nhật thông tin chi tiết về Một Số Ví Dụ Về Sử Dụng Regex Trong Java trên website Channuoithuy.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!