Nhờ giúp tách lấy số trong chuổi

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Moderators: tungblt, vuathongtin

Post Reply
muaphonui_2010
Thành viên ưu tú
Thành viên ưu tú
Posts: 551
Joined: Fri 26/11/2010 1:15 pm
Location: TP.HCM
Has thanked: 190 times
Been thanked: 36 times
Contact:

Nhờ giúp tách lấy số trong chuổi

Post by muaphonui_2010 »

Nhờ các bạn chỉ giúp :
Giả sử mình có chuổi : "BH00123" hoặc "BH0123N" hoặc "B123NH0" hoặc "1234567" hoặc "0001234" ==> nói chung là 1 chuỗi gồm số không theo quy luật nào cả.
Vậy có hàm nào lấy được các số trong các chuổi trên không
Làm thế nào để có dc kết quả như sau :
"BH00123" = 123
"BH0123N" =123
"B123NH0" =1230
"1234567" =1234567
"0001234" =1234
Mong đựoc giúp đỡ. Xin cảm ơn
User avatar
xuanha
Guru
Guru
Posts: 1230
Joined: Thu 19/08/2010 4:25 pm
Location: Ban Tổ chức Thành uỷ Hưng Yên, tỉnh Hưng Yên
Has thanked: 13 times
Been thanked: 374 times
Contact:

Re: Nhờ giúp tách lấy số trong chuổi

Post by xuanha »

  1.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.         TextBox2.Text = Tachso(TextBox1.Text)
  3.     End Sub
  4.     Private Function Tachso(ByVal x As String) As String
  5.         Dim i%  Dim xau$ = ""
  6.         For i = 1 To x.Length
  7.             If IsNumeric(Mid(x, i, 1)) Then xau = xau & Mid(x, i, 1)
  8.         Next
  9.         Tachso = xau
  10.     End Function
Untitled.png
Untitled.png (10.78 KiB) Viewed 3709 times
Kiểm phiếu Đại hội Đoàn, Đại hội Đảng
http://caulacbovb.com/forum/viewtopic.php?t=23599
User avatar
vuathongtin
Điều hành viên
Điều hành viên
Posts: 1028
Joined: Sun 02/05/2010 10:03 pm
Location: Xứ sở DG
Has thanked: 2 times
Been thanked: 105 times
Contact:

Re: Nhờ giúp tách lấy số trong chuổi

Post by vuathongtin »

Cách 2: Dùng Regular Expression
(Sơ lược lý thuyết: \d : ký tự chữ số tương đương [0-9] ; \D : ký tự ko phải chữ số)

B1: Nhúng thư viện: Imports System.Text.RegularExpressions
B2:
  1.     Public Function loclayso(ByVal chuoi As String) As String
  2.         Dim myRegex As Regex = New Regex("\D")  Dim Result = ""
  3.         For Each subString As String In myRegex.Split(chuoi)
  4.             Result += subString
  5.         Next
  6.         Return Result
  7.     End Function
Bùi Thành Nhân
* Chuyên gia MMO
congtacvien.online
70hungpc
Thành viên chính thức
Thành viên chính thức
Posts: 44
Joined: Sat 20/10/2012 10:39 pm
Has thanked: 6 times

Re: Nhờ giúp tách lấy số trong chuổi

Post by 70hungpc »

Anh Xuanha và Vuathongtin cùng các Pro giúp em về phần tách số trong chuỗi với:
Vấn đề của em là: hiện đang có một chuỗi trong RichtextBox dạng : ND123 AC4054 15/10/2012...
Bây giờ cần lọc ra nhóm số sau ND (tức 123) đưa vào textbox1
lọc nhóm số sau AC (tức 4054) đưa vào textbox2
các số khác không quan tâm.
Em đã tìm hiểu các bài về tách số trong chuỗi trên diễn đãn nhưng vẫn bó tay ~X(
Mong các Pro giúp.
User avatar
xuanquy_th
Guru
Guru
Posts: 803
Joined: Tue 05/08/2008 9:15 pm
Location: Thanh Hoá
Has thanked: 1 time
Been thanked: 10 times
Contact:

Re: Nhờ giúp tách lấy số trong chuổi

Post by xuanquy_th »

  1. Dim s() As String = "ND123 AC4054 15/10/2012".Split(" ")
  2.         TextBox1.Text = s(0).Replace("ND", "")
  3.         TextBox2.Text = s(1).Replace("AC", "")
Khi Chúa Trời đóng cánh cửa này lại, Ngài sẽ mở một cánh cửa khác cho ta.
Nhưng ta thường nhìn quá lâu vào cánh cửa đã đóng nên không thấy được có một cánh cửa khác đang mở ra cho ta!!!
70hungpc
Thành viên chính thức
Thành viên chính thức
Posts: 44
Joined: Sat 20/10/2012 10:39 pm
Has thanked: 6 times

Re: Nhờ giúp tách lấy số trong chuổi

Post by 70hungpc »

Cảm ơn bác xuanquy_th nhé.
sao thấy đơn giản thế, để thử xem thế nào...
minhsonx87
Posts: 3
Joined: Thu 01/08/2013 3:20 pm
Has thanked: 1 time

Re: Nhờ giúp tách lấy số trong chuổi

Post by minhsonx87 »

em co van de nay rat can a giup do: e co chuoi "gh78.9h" tach ra la 78.9 a giup e voi!
User avatar
1045007
Thành viên danh dự
Thành viên danh dự
Posts: 551
Joined: Mon 09/06/2008 3:35 pm
Location: TP Cần Thơ
Has thanked: 2 times
Been thanked: 61 times
Contact:

Re: Nhờ giúp tách lấy số trong chuổi

Post by 1045007 »

minhsonx87 wrote:em co van de nay rat can a giup do: e co chuoi "gh78.9h" tach ra la 78.9 a giup e voi!
  1.  String number = Regex.Match("gh78.9h", @"\d+\.\d+").Value;
Xếp hình cổ điển for Android-https://play.google.com
♂♀♂♀♂♀♂♀♂♀♂♀♂♀♂♀♂♀♂♀♂♀♂♀♂♀♂♀♂♀♂♀♂♀♂♀♂♀♂♀
hapvn
Thành viên chính thức
Thành viên chính thức
Posts: 32
Joined: Sat 04/07/2009 5:50 pm
Has thanked: 2 times
Been thanked: 6 times

Re: Nhờ giúp tách lấy số trong chuổi

Post by hapvn »

Update ham chay duoc so nguyen va so thuc

Code: Select all

Function TachSoThapPhan(ChuoiSo As String) As Double
        Dim ViTriDau, ViTriCuoi As Integer
        ViTriDau = 0
        ViTriCuoi = 0
        For i As Integer = 0 To Len(ChuoiSo)
            If ViTriDau = 0 Then
                If IsNumeric(ChuoiSo(i)) = True Then
                    ViTriDau = i
                End If
            Else
                If IsNumeric(ChuoiSo(i)) = False And ChuoiSo(i) <> "." Then
                    ViTriCuoi = i
                    Exit For
                End If
            End If
        Next
        TachSoThapPhan = Microsoft.VisualBasic.Mid(ChuoiSo, ViTriDau + 1, ViTriCuoi - ViTriDau)
    End Function
    
Post Reply

Return to “Visual Basic .NET và C# (VB.NET & C#)”