Bạn dùng function này:Mình có 1 chuỗi như sau
k= ",2,2,4,5,c,b,c,2"
Mình muốn loại bỏ dấu phẩy đầu tiên, và các ký tự bị trùng lặp
kết quả mong muốn là
k= "2,4,5,c,b"
Mong các bạn giúp đỡ
Function reg(str As String)
With CreateObject("vbscript.regexp")
.Global = True: .Pattern = "((\,\w).*)\2"
Do While .test(str)
str = .Replace(str, "$1")
Loop
End With
reg = Mid(str, 2, 1000)
End Function
Tôi tưởng RegExp sẽ khỏi cần vòng lập chứ (thế mới tuyệt chiêu)Bạn dùng function này:
PHP:Function reg(str As String) With CreateObject("vbscript.regexp") .Global = True: .Pattern = "((\,\w).*)\2" Do While .test(str) str = .Replace(str, "$1") Loop End With reg = Mid(str, 2, 1000) End Function
Tôi không nghĩ ra cách nào dùng reg không dùng vòng lặp cho bài này, chắc tại học chưa tới, bạn cho tôi đoạn code dùng reg không dùng vòng lặp được không?Tôi tưởng RegExp sẽ khỏi cần vòng lập chứ (thế mới tuyệt chiêu)
Còn đã dùng vòng lập rồi thì cách thông thường cũng xong
Function StrUnique(ByVal Text As String, Optional ByVal Delimiter As String = vbNullString) As String
Dim n As Long, arrTmp
'On Error Resume Next
If Delimiter = vbNullString Then
StrUnique = Left(Text, 1)
For n = 1 To Len(Text)
If InStr(StrUnique, Mid(Text, n, 1)) = 0 Then StrUnique = StrUnique & Mid(Text, n, 1)
Next n
Else
arrTmp = Split(Replace(Text, Delimiter, Space(1)), Space(1))
With CreateObject("Scripting.Dictionary")
For n = 0 To UBound(arrTmp)
If Len(arrTmp(n)) Then
If Not .Exists(arrTmp(n)) Then .Add arrTmp(n), Nothing
End If
Next n
StrUnique = Join(.Keys, Delimiter)
End With
End If
End Function
StrUnique(chuỗi đầu vào, [dấu phân cách]
RegExp không phải là thế mạnh của tôi (nói trắng ra là tôi không rành nó)Tôi không nghĩ ra cách nào dùng reg không dùng vòng lặp cho bài này, chắc tại học chưa tới, bạn cho tôi đoạn code dùng reg không dùng vòng lặp được không?