PowerShell: Xóa chữ số hoặc chữ cái khỏi chuỗi (RegEx)
Trong bài đăng trên blog này, tôi sẽ đề cập đến việc xóa các chữ số và chữ cái khỏi một chuỗi. Tôi sẽ sử dụng một chuỗi ví dụ để chỉ cho bạn cách thao tác với chuỗi đó. Bạn có thể dựa trên ví dụ đó để đạt được mục tiêu của mình.
Điểm khởi đầu
Chúng ta sẽ bắt đầu đơn giản với chuỗi ví dụ bên dưới.
$a='patrick.gruenbauer1298@outlook.com'
Xóa tất cả các chữ số bằng câu lệnh \d+ (RegEx)
\d+ là một câu lệnh biểu thức chính quy (Biểu thức chính quy). Nó sẽ xóa tất cả các chữ số khỏi chuỗi. Xin lưu ý rằng bạn cần sử dụng câu lệnh -replace để đưa RegEx vào hoạt động. Phương thức .NET().replace không hỗ trợ biểu thức chính quy.
$a='patrick.gruenbauer1298@outlook.com'
$a -replace '\d+',''
Điều đó diễn ra tốt đẹp. Bây giờ hãy làm tương tự với tất cả các chữ cái.
Xóa tất cả các chữ cái có câu lệnh [a-zA-Z] (RegEx)
Đoạn mã sau sẽ xóa tất cả các chữ cái khỏi chuỗi ví dụ.
$a='patrick.gruenbauer1298@outlook.com'
$a -replace '[a-zA-Z]',''
Xóa các chữ cái cụ thể
Như bạn có thể đã nhận thấy tên tôi bị viết sai chính tả. Họ của tôi là Gruenauer, không phải Gruenbauer. Hãy sửa điều này với tuyên bố này.
$a='patrick.gruenbauer1298@outlook.com'
$a -replace 'b',''
PowerShell có nhiều tính năng sử dụng -replace. Ví dụ: tôi có thể xóa tất cả các chữ số và chữ b cùng một lúc.
$a='patrick.gruenbauer1298@outlook.com'
$a -replace 'b','' -replace '\d+',''
Xóa tất cả các chữ số và ký tự bằng \w (RegEx)
Câu lệnh biểu thức chính quy /w sẽ xóa a-z, A-Z và 0-9.
$a='patrick.gruenbauer1298@outlook.com'
$a -replace '\w',''
Xóa các chữ cái khác nhau cụ thể
Ví dụ muốn bỏ hết a, b, c thì bỏ các chữ cái trong ngoặc vuông.
$a='patrick.gruenbauer1298@outlook.com'
$a -replace '[a-c]',''
Sử dụng thay thế nhiều lần
Bây giờ chúng ta có thể kết hợp các tác vụ trên để đạt được nhiều hành động trong một lớp. Đoạn mã sau sẽ xóa tất cả các chữ số, sửa tên chắc chắn của tôi và thay thế tên miền outlook.com bằng tên miền gmail.com trong một dòng duy nhất.
$a='patrick.gruenbauer1298@outlook.com'
$a -replace '\d+','' -replace 'b','' -replace 'outlook.com','gmail.com'
Điều này là dành cho hôm nay. Tôi hy vọng bạn đã tìm thấy những gì bạn đang tìm kiếm về việc loại bỏ các chữ số và ký tự bằng PowerShell.





