Giải thích ký tự "|"! (1 người xem)

  • Thread starter Thread starter ThuNghi
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

ThuNghi

Hãy cho rồi sẽ nhận!
Thành viên đã mất
Tham gia
16/8/06
Bài viết
3,808
Được thích
4,449
Giải thích ký tự "|"!
Tôi có code sau nhưng thắc mắc tại sao phải dùng ký tự "|" mà kg thể thay thế ";", ":" hay vbback. Thay vào là code báo lỗi.
Code này tôi vận dụng lại từ hàm loc của bạn NinhTom nhưng chưa hiểu nguyên lý ký tự "|".
Nhờ các bạn giải thích để tôi có thể vận dụng.
Cám ơn!
PHP:
Sub Text()
Dim i&
Dim myStr$, sTmp$, sText$
Dim Obj As Object, Arr
Set Obj = CreateObject("VBScript.RegExp")
sTmp = "Sinh nhat GPE 30/06 tai Thi Nghe"
Arr = Array("ThuNghi", "PTM0412", "30/06", "GPE")
myStr = Join(Arr, "|")
With Obj
  .Global = True
  .IgnoreCase = True
  .Pattern = myStr
  If .Test(sTmp) Then
    For i = 0 To .Execute(sTmp).Count - 1
      sText = .Execute(sTmp)(i)
      MsgBox sText
    Next i
  Else
    sText = ""
  End If
End With
Set Obj = Nothing
End Sub
 
Giải thích ký tự "|"!
Tôi có code sau nhưng thắc mắc tại sao phải dùng ký tự "|" mà kg thể thay thế ";", ":" hay vbback. Thay vào là code báo lỗi.
Code này tôi vận dụng lại từ hàm loc của bạn NinhTom nhưng chưa hiểu nguyên lý ký tự "|".
Nhờ các bạn giải thích để tôi có thể vận dụng.
Cám ơn!
Không hiểu lắm... nhưng tôi thắc mắc tại sao code không là vầy cho đơn giản:
PHP:
Sub Text2()
  Dim i&, Arr, sTmp As String
  sTmp = "Sinh nhat GPE 30/06 tai Thi Nghe"
  Arr = Array("ThuNghi", "PTM0412", "30/06", "GPE")
  With CreateObject("VBScript.RegExp")
    .Global = True
    .IgnoreCase = True
    For i = 0 To UBound(Arr)
      .Pattern = CStr(Arr(i))
      If .Test(sTmp) Then MsgBox .Pattern
    Next
  End With
End Sub
-----------------
Ngoài ra xin nói thêm về dấu "|" trong Pattern Property
x|y Matches either x or y. For example, "z|wood" matches "z" or "wood". "(z|w)oo" matches "zoo" or "wood".
Giải thích đơn giản thì dấu "|" là TỪ KHÓA QUY ĐỊNH dùng trong trường hợp muốn tìm X HOẶC Y
 
Lần chỉnh sửa cuối:
Upvote 0
Không hiểu lắm... nhưng tôi thắc mắc tại sao code không là vầy cho đơn giản:
PHP:
Sub Text2()
  Dim i&, Arr, sTmp As String
  sTmp = "Sinh nhat GPE 30/06 tai Thi Nghe"
  Arr = Array("ThuNghi", "PTM0412", "30/06", "GPE")
  With CreateObject("VBScript.RegExp")
    .Global = True
    .IgnoreCase = True
    For i = 0 To UBound(Arr)
      .Pattern = CStr(Arr(i))
      If .Test(sTmp) Then MsgBox .Pattern
    Next
  End With
End Sub
2 code vẫn cùng mục đích như nhau
Code của NDU thì duyệt Test(sTmp) theo từng đối tượng của Arr = for i.
Code mình thì gom Arr thành 1 chuổi và phân cách là dấu "|" sau đó mới test(sTmp) và for i để biết những chữ nào mà có trong Arr . Nhưng khi thay dấu "|" thành vbblack hay ";" thì code không chạy

Viết xong mới thấy NDU trả lời. Vô cùng cảm tạ.
 
Upvote 0
Ah.. lúc trước mình có gửi 1 Ebook về VBScript lên diễn đàn, giờ hổng biết nào nằm ở đâu
Mình đã post lên Mediafire, ThuNghi tải về tham khảo nha
http://www.mediafire.com/?a6u3b5d0zj5fo78
Tuyệt hay đấy!
 
Upvote 0
Anh Thunghi tải thử file này xem nhé, trong quá trình tìm hiểu về Regular Expression Object một người bạn tốt của HMT có làm giúp HMT, share với anh và mọi người cùng tìm hiểu những kiến thức cơ bản về Regular Expression Object, trong file Code có cả phần chỉ dẫn.
====================
Tham khảo thêm ở đây anh nhé, rất thú vị :
Regular Expression Object
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Cái thằng em VBScript Regular Expression này rất hay, nhất là những bài toán liên quan đến xử lý chuổi
Chỉ đáng tiếc 1 điều: Execute method lại trả về kết quả như 1 collection... Nếu nó là 1 Array thì.. tuyệt cú mèo luôn
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom