ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

¦p¦ó³]©wREGEXP PATTERN¤~¯à¨ú¥X¥¿½T¸ê®Æ©O¡H

¦p¦ó³]©wREGEXP PATTERN¤~¯à¨ú¥X¥¿½T¸ê®Æ©O¡H

¦U¦ì¤j¤j¦n¡G

  ¤p§Ì¤Þ¥ÎREGEXP¨Ó¨ú¥XAÄ檺¦r¦ê
¨Ã³]©wPATTERN¨Ó±NA1¨ú¥X¤­­Ó¦r¦ê¡C
¦ý¥Ø«e·Q±N¦³³r¸¹¥]§t¦b¦r¦ê¤º¡A
¹ï7,852¤Î119,258,226¦Uµø¬°¤@­Ó
¦r¦ê¨Ã¶ñ¤JA¦Cªº«ü©wÄæ¦ì¤º¡C
¦ýPATTERN ³]©w¤@ª½µLªk逹¦¨¡C
½Ð¦U¦ì¤j¤j¯à¬Û§U¡A¦p¦ó­×¥¿
PATTERNªº³]©w­È©O¡H

AÄæ¸ê®Æ¦p¤U¡G
22  2 PCE   7,852  119,258,226
106  2 PCE   10,117,852  226
10  11 PCE   17,852  119,258,226
1080  118 PCE   1,117,852  119,258
109  1429 PCE   17,852  19,258
110  51511 PCE   17,852  119,258,226
11125  515 PCE   517,852  9,258,226


»yªk¦p¤U¡G
Sub aa()   
    Dim mSht As Worksheet
    Dim mRng As Range, mRng1 As Range
    Dim mRegexp As New RegExp
    Dim mPtn$, mStr$
    Dim matchCol, matchA
    Dim s%   
    Set mRegexp = CreateObject("vbscript.regexp")
    Set mSht = Worksheets("temp")
    s = 1   
    mPtn = "\d+|PCE|\d+,[0-9]{3}" '¦p¦ó­×¥¿mPtn
    With mSht
        Set mRng1 = .Range("a1", .Range("a" & .Rows.Count).End(xlUp))
        For Each mRng In mRng1
            mStr = mRng.Value
            With mRegexp
                .Global = True
                .IgnoreCase = False
                .Pattern = mPtn
                Set matchCol = .Execute(mStr)
            End With
            For Each matchA In matchCol
              mRng.Offset(, s) = matchA.Value
              s = s + 1
            Next            
            s = 1
        Next
    End With   
End Sub

ÁÂÁ¦U¦ì¤j¤j¡I

regTest.rar (8.27 KB)

¦^´_ 2# kimbal


    ª©¥D¤j¤j±z¦n¡G

   ÁÂÁª©¥D¤j¤j´£¨Ñ¦¹¤è¦¡¬O³Ì²z·Qªº¸ÑÃD¤F¡C
¹ê¤£¬Ûº¡¡A¤p§Ìªñ¤é°g¤WREGEXP¦¹
¤å¦r³B²zµ{¦¡¡A¦¹¤u¨ãµ{¦¡¦b³B²z¤å¦r
¦r¦ê¤è­±¹ê¦b¾Ö¦³·¥¤j¥\¯à¡C¦]¦¹¡A
¤p§Ì¦b¤u§@¤W¦p¹J¤W¤å¦r³B²z®É¡A
¶}©l§ï¥ÎREGEXP¨Ó¸ÑÃD¡C
¤p§Ì¥Ø«e¹ï¥»ÃDªº¸Ñ´£¤è¦¡
¬O¥ý±N¡u¡A¡v¨ú¥N§Y¥i¨ú¥X
AÄæ¦ìªº©Ò¦³¸ê®Æ¡C¦ý¤p§Ì¬O
­É¦¹°ÝÃD¨Ó¿i½m¦Û¤w¡C§Æ±æ¯à
¦bPATTERN³]©w¤W¦³©Ò¬ð¯}©O¡H

·P®¦¤j¤j¡I

TOP

¦^´_ 4# stillfish00


    ¤j¤jªº¯«¨Ó¤§µ§¦³¦pµeÀsÂI·ú¤@¼Ë¡C
·Q¤£¨ìpatternªº³]©w·|¦³¦p¦¹ªºÅܤơA
³o¬O¥O¤p§ÌµÛ°gªº¦a¤è¤F¡C
¤£ª¾¯à§_½Ð¤j¤j¯à¦A¶}¥Ü
¨ä¤¤ªº¦¹(  )À³¥Î¤è¦¡¬°¦ó¡A
¤p§Ì¥Ø«eÁÙµLªk²z¸Ñ©O¡H

·P®¦¤j¤j¡I

TOP

¦^´_ 6# stillfish00


    ÁÂÁ¤j¤jªº¸Ô¸Ñ¡C
¤p§Ì·|¥ý¦¬¤U¡A¦AºCºC
¥hÅé·|¥¦ªº§t·N¡C

·P®¦¤j¤j¡I

TOP

¦^´_ 8# sunnyso


    ÁÂÁ¤j¤jªº½d¨Ò¡A
¤p§Ì¤w±N¥¦¯Ç¤J¬ÃÂáC

¤p§Ì¤]¬Oªñ¤é¤~µo²{
REGEXP EXPRESS ½T¹ê
¦b¦r¦ê³B²z¤W¦³¥¦ªº±j¶µ¡A
­È±oµo¤ß«ä¦n¦n¾Ç²ß¡C
§Úª¾¹D­n¾Ç¦n¥¦ªº¤£¤Gªkªù¡A
´N¬O­n¤£Â_ªº½m²ß¡A¤]¬è±æ
¯à§_»â·|¥X¥¦ªººëÀH¡C
¤£ª¾¤j¤j¯à§_±ÀÂ˦nªº
REGEXP敎¾Ç½d¨Òºô¯¸¶Ü¡H

·P®¦¤j¤j¡I

TOP

¦U¦ì¤j¤j¦n¡G

  ¤p§Ì¦³¤G­Ó½d¨Ò¡A
²Ä¤@­Ó½d¨Ò¡G
Pattern = "\d+\s+(?=¤¸)."

¥i¥H¨ú¥X
100  ¤¸
8000  ¤¸
57  ¤¸

²Ä¤G­Ó½d¨Ò

.Pattern = "\d+\s+(?=¤è¤¸)."
¦ý¶È¨ú¥X
100  ¤è
8000  ¤è
57  ¤è

½Ð°Ý¦p¦ó¥i¦P®É¨ú¥X¦r¦ê"¤è¤¸"©O¡H


Sub aa()
    Dim regex As New RegExp
    Dim sr, mat, m
    sr = "abc  100  ¤¸  8000  ¤¸  57  ¤¸  efg"
    With regex
        .Global = True
        .Pattern = "\d+\s+(?=¤¸)."        
        Set mat = .Execute(sr)
        For Each m In mat
            Debug.Print m
        Next m
    End With
End Sub
Sub bb()
    Dim regex As New RegExp
    Dim sr, mat, m
    sr = "abc  100  ¤è¤¸  8000  ¤è¤¸  57  ¤è¤¸  efg"
    With regex
        .Global = True
        .Pattern = "\d+\s+(?=¤è¤¸)."
        
        Set mat = .Execute(sr)
        For Each m In mat
            Debug.Print m
        Next m
    End With
End Sub

TOP

ÁÂÁ¦U¦ì¤j¤j¡C
²Ä¤G¶µ¤w§ä¥X¤èªk¥i¸Ñ¨M¤F¡C
³]©w¦p¤U¡G
mPtn = "\d+\s+(?=PCS).{3}"

TOP

¦^´_ 14# stillfish00


    ÁÂÁ¤j¤j´£¨Ñ§óºë½oªº»yªk¡A
¤]¦P®É´£¨Ñ¾Ç²ßªººô¯¸¡C
¤p§Ì¹ï¤j¤j¦p¦¹¤F¸ÑREGEXP
EXPRESSªºÀ³¥Î¡C·Q¥²¤w¸g¬O
¥X¯«¤J¤Æªº¹Ò¬É¤F¡C
¤£ª¾¤j¤j¯à§_§Q¥Î¦¹¶é¦a¡A¶}ÅP
¦³ÃöREGEXP EXPRESS¾Ç²ß
«ü«n¡C
³o¼Ë¤]¯à´ç¤Æ§Ú­Ì³o¨Ç±ß½ú¡C
»¡¹ê¦b¡A¦n¨Ç¦~«e´N¦³¦V
OOBIRDª©¥D½Ð敎¹L¡C
¦Ó·í®É¹ê¦b¬O¤£±o¨äªù¦Ó¤J¡C
¦p¤µ¡A¤£·Q¦b¥b³~¦Ó°h¡A
¤]§Æ±æ¯à¼õ¹L³o¬q¾Ç²ßªºµh­W´Á¤F¡C

¯¬ºÖ¤j¤j
¨Æ¨Æ¶¶¤ß

TOP

¦^´_ 14# stillfish00

¤j¤j±z¦n¡G
¤p§Ì±q¤j²M¦­°_¡A´N¶}©l¾Ç²ß³]©w
¤j¤j¤§«e´£¨Ñ¤§»yªk¡A¨Ãµy¥[§ó§ï¤U¦C¦r¦ê¡C
¥u¬OmPtn¤§³]©wÁÙ¬OµLªk¦pÄ@¡A½Ð¤j¤j¦AÀ°
¤p§Ì¬Ý¬Ý¦p¦ó­×¥¿pattern©O¡H

mPtn = "PCE|\d+([.]?\d{0,2}|,\d{3}[.]?\d{0,2})*"


22  2 PCE   7,852.60  119,258,226.05
106  2 PCE   10,117,852  226.15
10  11 PCE   17,852  119,258,226.25
1080  118 PCE   1,117,852  119,258
109  1429 PCE   17,852.55  19,258
110  51511 PCE   17,852.70  119,258,226
11125  515 PCE   517,852  9,258,226.75
11.5 515 PCE 6.75 105.5

ÁÂÁ¤j¤j¡I

TOP

¦^´_ 16# dechiuan999


    ÁÂÁ¦U¦ì¤j¤j¡C
¤p§Ì¹ïpatternªº³]©w¤w¸Ñ¶}¤F¡C

mPtn = "PCE|\d([,}?\d{3}?[.]?\d{0,2})*"

TOP

        ÀR«ä¦Û¦b : ºw¤ô¦¨ªe¡C²É¦Ì¦¨ÅÚ¡A¤Å»´¤vÆF¡A¤Å¥Hµ½¤p¦Ó¤£¬°¡C
ªð¦^¦Cªí ¤W¤@¥DÃD