• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

[Net] Xử lý chuỗi nâng cao với Regular Expresssion

Các thủ thuật liên quan đến xử lý chuỗi và thời gian

Điều hành viên: tungcan5diop, QUANITGROBEST

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

[Net] Xử lý chuỗi nâng cao với Regular Expresssion

Gửi bàigửi bởi anhtuyenbk » T.Sáu 04/04/2008 11:18 am

Thủ thuật: [Net] -Các thao tác xử lý chuỗi
Tác giả: Nguyễn Anh Tuyên
Mô tả: Các thao tác xử lý chuỗi nâng cao :D:D


[Net] Xử lý chuỗi nâng cao với Regular Expresssion

1. Tách chuỗi nằm giữa 2 từ

Mã: Chọn hết

  1. using System.Text.RegularExpressions; //Namespace cần thiết
  2. public String[] Tachchuoigiua2tu(String ChuoiGoc, String Tu1, String Tu2)
  3.         {
  4.             String varParttern = Tu1 + "[^" + Tu2 + "]*" + Tu2;
  5.             Regex objRegex = new Regex(varParttern, RegexOptions.Multiline);
  6.             MatchCollection objMatch = objRegex.Matches(ChuoiGoc);
  7.             String[] Ketqua = new String[objMatch.Count];
  8.             for(int i=0; i<objMatch.Count;i++)
  9.             {
  10.                 Ketqua[i] = objMatch[i].Value.Replace(Tu1,"").Replace(Tu2,"");
  11.             }            
  12.             return Ketqua;
  13.         }

Cách sử dụng

Mã: Chọn hết

  1. private void btnTestParttern_Click(object sender, EventArgs e)
  2.         {
  3.             String chuoi = "<<11111>>,<<22222>>,<<333333>>";
  4.             String[] Ketqua = Tachchuoigiua2tu(chuoi, "<<", ">>");
  5.             foreach (String s in Ketqua)
  6.             {
  7.                 txtKetqua.Text += s + "\r\n";
  8.             }
  9.  
  10.         }
  11.     //////////////
  12.     //Kết quả
  13.     11111
  14.     22222
  15.     33333
Sửa lần cuối bởi anhtuyenbk vào ngày CN 06/04/2008 10:26 pm với 1 lần sửa.


Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: [Net] ***Xử lý chuỗi nâng cao với Regular Expresssion

Gửi bàigửi bởi anhtuyenbk » CN 06/04/2008 10:25 pm

2. Tách các cụm số ra khỏi chuỗi
Ví dụ bạn cần tách các cụm số ra khỏi chuỗi sau :D
abcsd123456asdhfkas4646546werwer78979

Mã: Chọn hết

  1. String varParttern = @"\d+";
  2.             String s = "abcsd123456asdhfkas4646546werwer78979";
  3.             Regex objRegex = new Regex(varParttern, RegexOptions.Multiline);
  4.             MatchCollection objMatch = objRegex.Matches(s);            
  5.             foreach (Match Temp in objMatch)
  6.             {
  7.                 txtKetqua.Text += Temp.Value + "\r\n";
  8.             }
  9. Kết quả
  10. 123456
  11. 4646546
  12. 78979
  13.  
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

Hình đại diện của người dùng
hdn
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 319
Ngày tham gia: T.Tư 26/03/2008 7:09 pm
Has thanked: 1 time
Been thanked: 4 time

Re: [Net] ***Xử lý chuỗi nâng cao với Regular Expresssion

Gửi bàigửi bởi hdn » T.Hai 07/04/2008 11:41 am

Tách các cụm số ra khỏi chuỗi (Cách 2)

Mã: Chọn hết

  1.  
  2. public string isNum(string s)
  3.         {
  4.             string kq;
  5.             Regex objR = new Regex("[0-9]");
  6.             MatchCollection objMatch = objR.Matches(s);
  7.             foreach (Match Tmp in objMatch)
  8.             {
  9.                 kq += Tmp.Value;
  10.             }
  11.             return kq;
  12.         }
  13.  
:|

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: [Net] ***Xử lý chuỗi nâng cao với Regular Expresssion

Gửi bàigửi bởi anhtuyenbk » T.Hai 07/04/2008 11:54 am

ec, hdn dạo này cũng nghiên cứu cái này nữa à.
Với code của hdn thì kết quả ra không phải là các cụm số riêng lẻ
123456
4646546
78979
mà là một cụm số duy nhất, là kết quả nối của các cụm số trên tức là
123456464654678979
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

Hình đại diện của người dùng
hdn
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 319
Ngày tham gia: T.Tư 26/03/2008 7:09 pm
Has thanked: 1 time
Been thanked: 4 time

Re: [Net] ***Xử lý chuỗi nâng cao với Regular Expresssion

Gửi bàigửi bởi hdn » T.Tư 09/04/2008 6:41 pm

Muốn ra các cụm riêng lẻ thì sửa dòng số 9 thành:

Mã: Chọn hết

  1. kq += Tmp.Value + "\r\n";

:D
:|


Quay về “[.NET] Chuỗi và Thời gian”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách