Vô danh Tiểu tốt
Thành viên tiêu biểu

- Tham gia
- 22/1/14
- Bài viết
- 430
- Được thích
- 547
Dùng regex ta có thể tìm được 1 từ theo sau bởi 1 từ cụ thể mà kết quả không bao gồm từ theo sau đó chẳng hạn tìm từ "yêu" không có từ "em" liền sau như code ví dụ:
Kết quả
Liệu có cách nào để tìm một từ có một từ cụ thể đứng trước nó nhưng kết quả tìm không bao gồm từ đứng trước đó không? Ví dụ
"Tôi tìm em mà sao em đi mất rồi". Tìm từ "em" bắt đầu với từ "sao", kết quả ở vị trí 18 (value="em" chứ không phải value="sao em"). Regex có thể tìm được cụm từ "sao em" nhưng tôi lại chỉ cần tìm từ "em" đứng sau từ "sao". Ý tưởng của tôi là chỉ cần dùng 1 pattern để tìm ra các giá trị thỏa mãn trong câu mà không cần bước phụ loại bỏ dữ liệu thừa.
Nhân tiện cho hỏi ngu sao dán vô cái
Mã:
Sub teo()
Dim regEx As New VBScript_RegExp_55.RegExp
Dim matches, match, s, sentence
[COLOR=#ff0000] regEx.Pattern = "yêu(?! em)"[/COLOR]
regEx.IgnoreCase = True 'True to ignore case
regEx.Global = True 'True matches all occurances, False matches the first occurance
s = ""
sentence = "Anh yêu em sao em không yêu anh. Sao em yêu anh ta?"
If regEx.Test(sentence) Then
Set matches = regEx.Execute(sentence)
For Each match In matches
s = s & " Position: " & match.FirstIndex
s = s & " Word: " & match.Value & " "
s = s & Chr(10)
Next
End If
Debug.Print s
End Sub
PHP:
Position: 24 Word: yêu
Position: 40 Word: yêu
value="yêu"
"Tôi tìm em mà sao em đi mất rồi". Tìm từ "em" bắt đầu với từ "sao", kết quả ở vị trí 18 (value="em" chứ không phải value="sao em"). Regex có thể tìm được cụm từ "sao em" nhưng tôi lại chỉ cần tìm từ "em" đứng sau từ "sao". Ý tưởng của tôi là chỉ cần dùng 1 pattern để tìm ra các giá trị thỏa mãn trong câu mà không cần bước phụ loại bỏ dữ liệu thừa.
Nhân tiện cho hỏi ngu sao dán vô cái
PHP:
code lại không xuống dòng được nhỉ?
Lần chỉnh sửa cuối: