home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pcre34.zip / PCRE34S.ZIP / vacpp4 / os2 / rexxpcre.txt < prev   
Text File  |  2000-11-22  |  5KB  |  172 lines

  1. 1.REXXPCRE.DLL
  2.  
  3. 1.1. PCREAuthor
  4. ß¿¡Γá¬ß: auth = PCREAuthor()
  5. 髺óαáΘáÑΓ ßΓ᫬π, ß«ñÑαªáΘπε ¿¼∩ áóΓ«αá PCRE ¿ Ñú« email.
  6.  
  7. 1.2. PCREVersion
  8. ß¿¡Γá¬ß: ver = PCREVersion()
  9. 髺óαáΘáÑΓ ßΓ᫬π, ß«ñÑαªáΘπε óÑαß¿ε í¿í½¿«ΓѬ¿.
  10.  
  11. 1.3. PCREInit
  12. ß¿¡Γá¬ß: rc = PCREInit([locale])
  13. »áαá¼ÑΓα: locale -- ΓαÑíπѼá∩ ½«¬á½∞ (߬áªÑ¼ "En_US")
  14. ó«ºóαáΘáÑΓ: ºáñÑ⌐ßΓó«óá¡¡πε ½«¬á½∞ (»« óßѼ ¬áΓÑú«α¿∩¼)
  15. ê¡¿µ¿á½¿º¿απÑΓ í¿í½¿«ΓѬπ ºáñá¡¡«⌐ ½«¬á½∞ε. 
  16. àß½¿ »áαá¼ÑΓα »πßΓá∩ ßΓ᫬á, Γ« ¿¡¿µ¿á½¿º¿απÑΓß∩ ΓѬπΘÑ⌐ 
  17. ½«¬á½∞ε (ß¼. SET LANG ó config.sys).
  18. àß½¿ »áαá¼ÑΓα »α«»πΘÑ¡ -- ¿ß»«½∞ºπÑΓß∩ "C" ½«¬á½∞.
  19.  
  20. Å«-π¼«½τá¡¿ε, í¿í½¿«ΓѬá αáí«ΓáÑΓ ß "C" ½«¬á½∞ε.
  21.  
  22. 1.4. PCRECompile
  23. ß¿¡Γá¬ß: rc = PCRECompile( 'pcre', mask )
  24. »áαá¼ÑΓαδ: 'pcre' -- ¿¼∩ »ÑαѼѡ¡«⌐, ¬πñá íπñÑΓ »«¼ÑΘ±¡ σφ¡ñ½
  25.                      ß¬«¼»¿½¿α«óá¡¡«ú« αÑúπ½∩α¡«ú« óδαáªÑ¡¿∩
  26.             mask  -- ßΓ᫬á ß αÑúπ½∩α¡δ¼ óδαáªÑ¡¿Ñ¼
  27. ó«ºóαáΘáÑΓ: ¬«ñ «Φ¿í¬¿
  28.      0 - ok
  29.      1 - ¡Ñ¬«ααÑ¬Γ¡δÑ (¡Ñ¿ºóÑßΓ¡δÑ) «»µ¿
  30.      2 - ¡Ñ¬«ααÑ¬Γ¡á∩ ¼á߬á
  31.      3 - ¡Ñ¬«ααÑ¬Γ¡«Ñ ¿¼∩ »ÑαѼѡ¡«⌐ ñ½∩ pcre
  32.      4 - «Φ¿í¬á ¬«¼»¿½∩µ¿¿, ΓѬßΓ«óá∩ ßΓα«¬á »«¼ÑΘáÑΓß∩ ó 'pcre'
  33. 諼»¿½¿απÑΓ αÑúπ½∩α¡«Ñ óδαáªÑ¡¿Ñ ñ½∩ ñá½∞¡Ñ⌐ΦÑú« ¿ß»«½∞º«óá¡¿∩.
  34.  
  35. mask ¿¼ÑÑΓ ó¿ñ : /regexp/[8|i|m|s|x|g|A|U|E]
  36.   8 -- UTF8
  37.   i -- αÑú¿ßΓα ¡Ñ πτ¿ΓδóáÑΓß∩
  38.   m -- multiline
  39.   s -- dot all
  40.   x -- extended
  41.   g -- not empty
  42.   A -- ancored
  43.   U -- ungreedy
  44.   E -- dollar only
  45. ºá ñÑΓá½∩¼¿ «íαáΘáΓ∞ß∩ ¬ απ¬«ó«ñßΓóπ »« ∩ºδ¬π Perl ¿ ñ«¬π¼Ñ¡Γᵿ¿ »« PCRE.  
  46.  
  47. Åα¿¼Ñα:
  48.   if PCRECompile('rec', '/(\d{2}/\d{2}/\d{2,3}) (\d{2}:\d{2}:\d{2}) (\[\d+,\d+\]) . (.*)/') then
  49.     say Error !
  50.   else
  51.     say Success
  52.     
  53. 1.5. PCREExec   
  54. ß¿¡Γá¬ß: rc = PCREExec('pos_stem.',pcre,string,[pos,[,opts])
  55. »áαá¼ÑΓαδ: 'pos_stem.' -- ¿¼∩ ßΓѼá, ó ¬«Γ«¼ íπñπΓ σαá¡¿Γß∩ ß¼ÑΘÑ¡¿∩.
  56.                           pos_stem.0 -- τ¿ß½« «Γßτ±Γ«ó. 
  57.             pcre       -- ß¬«¼»¿½¿α«óá¡¡«Ñ αÑúπ½∩α¡«Ñ óδαáªÑ¡¿Ñ
  58.             string     -- ßΓ᫬á
  59.             pos        -- ¡áτá½∞¡á∩ »«º¿µ¿∩ (»«-π¼«½τá¡¿ε -- 1)
  60.                           ¡π¼Ñαᵿ∩ ß¿¼ó«½«ó ¬á¬ ó REXX'Ñ á ¡Ñ ó æ.
  61.            opts        -- «»µ¿¿ (»«-π¼«½τá¡¿ε -- ¡Ñ ¿ß»«½∞ºπεΓß∩)
  62.              A -  Anchored
  63.              b -  Not begin of line
  64.              e -  Not end of line
  65.              g -  Not empty
  66. ó«ºóαáΘáÑΓ: ¬«ñ «Φ¿í¬¿ 
  67.    -1 - ¡Ñ ¡á⌐ñÑ¡«
  68.     0 - Ok
  69.     1 - ¡Ñ¬«ααÑ¬Γ¡δÑ (¡Ñ¿ºóÑßΓ¡δÑ) «»µ¿
  70.     3 - ¡Ñ¬«ααÑ¬Γ¡«Ñ ¿¼∩ »ÑαѼѡ¡«⌐ ñ½∩ pcre
  71.     5 - pcre ¡Ñ ß«ñÑαª¿Γ ß¬«¼»¿½¿α«óá¡¡«ú« óδαáªÑ¡¿∩
  72.     6 - ¡Ñ¬«ααÑ¬Γ¡á∩ »«º¿µ¿∩
  73.  
  74. 1.6. InitPCRE
  75. ß¿¡Γá¬ß: call  PCRELoad
  76. ¿¡¿µ¿á½¿º¿απÑΓ í¿½¿«ΓѬπ, αÑú¿ßΓα¿απ∩ ¡Ñ«íσ«ñ¿¼δÑ Σπ¡¬µ¿¿
  77.  
  78. Åα¿¼Ñα:
  79. call  RxFuncAdd  'PCRELoad', 'REXXPCRE', 'PCRELoad'
  80. call  PCRELoad
  81.  
  82.  
  83. 1.7. DropPCRE
  84. ß¿¡Γá¬ß: call DropPCRE
  85. ñÑαÑú¿ßΓα¿απÑΓ Σπ¡¬µ¿¿
  86.  
  87. 2. REXXPCRE.rex[x]
  88. äóá ¬½áßßá :
  89.   RxPCRE 
  90.     |
  91.     +----RxStrParser
  92. é««íΘÑ ∩ó½∩ÑΓß∩ (¡á ¼«⌐ óºú½∩ñ) πñ«í¡«⌐ «í±αΓ¬«⌐ ¡áñ Σπ¡¬á¼¿ PCREXXXX.
  93. RxStrParser ó ¬á¬«⌐-Γ« ¼ÑαÑ á¡á½«ú ß»½¿Γ«ó¬¿ PERL'a.
  94.  
  95. 2.1 îÑΓ«ñδ RxPCRE
  96. 2.1.1 init([locale]) -- ß¼. PCREInit, ºá ¿ß¬½ετÑ¡¿Ñ¼: Ñß½¿ »áαá¼ÑΓαá ¡ÑΓ,
  97.                       Γ« ¿ß»«½∞ºπÑΓß∩ ΓѬπΘá∩ ½«¬á½∞
  98. »α¿¼Ñα:   
  99.   re = .RxPCRE~new
  100.     
  101. 2.1.2 getLocale  --  ó«ºóαáΘáÑΓ ½«¬á½∞, »α¿¼Ñ¡±¡¡πε ñ½∩ PCRE
  102. »α¿¼Ñα:
  103.   say re~getLocale
  104.   
  105. 2.1.3. getMask --  ó«ºóαáΘáÑΓ ¿ß»«½∞ºπѼπε ¼á߬π
  106. »α¿¼Ñα:
  107.   say re~getMask
  108.  
  109. 2.1.4. setMask(mask) -- ¬«¼»¿½¿απÑΓ ¼á߬π, ó«ºóαáΘá∩ ¬«ñ «Φ¿í¬¿; ß¼. PCRECompile
  110.  
  111. 2.1.5.  find(ofs_stem., str, [start_pos [,opts]]) --
  112.         »«¿ß¬ Σαáú¼Ñ¡Γ«ó, ó«ºóαáΘáÑΓ ¬«ñ «Φ¿í¬¿; ß¼. PCREExec
  113. 2.1.6.  findSubs(str, [start_pos [,opts]]) --
  114.         »«¿ß¬ Σαáú¼Ñ¡Γ«ó, ó«ºóαáΘáÑΓ ¼áßß¿ó (.array) ßΓ᫬ Ñß½¿ ß«ó»áñÑ¡¿∩
  115.         í뫨. Ñß½¿ ¡¿τÑú« ¡Ñ ¡á⌐ñÑ¡« ¿½¿ í뫨 «Φ¿í¬¿, Γ« ó«ºóαáΘáÑΓß∩ .nil;
  116.         ß¼ RxPCRE::find, PCREExec.
  117. »α¿¼Ñα:        
  118.   a = re~findSubs("z = zz!")
  119.   if a <> .nil then do /* do smth with data */ end;
  120.   else if re~lastError = -1 then say 'Not found!';
  121.   else say 'error: 're~lastError;
  122.   
  123. 2.1.7. lastError --  ó«ºóαáΘáÑΓ ¬«ñ ºáóÑαΦÑ¡¿∩ »«ß½Ññ¡Ñ⌐ «»Ñαᵿ¿
  124.     
  125. 2.1.8. getVersion --  ó«ºóαáΘáÑΓ óÑαß¿ε libpcre ó ó¿ñÑ ßΓ᫬¿
  126.  
  127. 2.1.9. getRxVersion -- ó«ºóαáΘáÑΓ óÑαß¿ε REXXPCRE ó ó¿ñÑ ßΓ᫬¿     
  128.  
  129. 2.1.10. getAuthor -- ó«ºóαáΘáÑΓ ßΓα«¬π ¿ ¿¼Ñ¡Ñ¼ áóΓ«αá PCRE
  130.  
  131. 2.1.11. getPortAuthor -- ó«ºóαáΘáÑΓ ßΓ᫬π ß ¿¼Ñ¡Ñ¼ áóΓ«αá REXXPCRE
  132.  
  133. 2.2. îÑΓ«ñδ RxStrParser
  134. è½áßß RxStrParser ¡áß½ÑñπÑΓ «Γ RxPCRE.
  135. æñѽᡠߠµÑ½∞ε »«½πτ¿Γ∞ πñ«í¡δ⌐ αáºí«αΘ¿¬ ßΓ᫬ ó «Γ½¿τ¿¿ «Γ PERL'a 
  136. »ÑαѼ¡¡δÑ ¿¡ñѬ߿απεΓß∩. Æ.Ñ. ($a,$b,$c) = / /
  137. íπñÑΓ ß««Γó. sp~parse(str); sp[1], sp[2], sp[3].
  138.  
  139. 2.2.1  init -- ¿¡¿µ¿á½¿º¿απÑΓ ¬½áßß. ß¼. RxPCRE::init
  140.     
  141. 2.2.2  parse -- ß«íßΓóÑ¡¡« αáºí«αΘ¿¬ ßΓ᫬¿, ó«ºóαáΘáÑΓ 1 Ñß½¿ ¡Ñ í佫 
  142.                 «Φ¿í«¬ ¿ 0 ó «íαáΓ¡«¼ ß½πτáÑ. 
  143.                 æ¼. RxPCRE::lastError, RxPCRE::find
  144.                 
  145.        rc = sp~parse(str)         
  146.        rc = sp~parse(str,10); /* ß »«º¿µ¿¿ 10 */
  147.  
  148. 2.2.3. '[]' ó«ºóαáΘáÑΓ »«ñßΓ᫬π. Ñß½¿ «¡á »πßΓá∩, Γ« αѬ«¼Ñ¡ñπÑΓß∩ 
  149.        »«ß¼«ΓαÑΓ∞ lastError
  150.  
  151.        
  152. 2.3 Åα¿¼Ñα       
  153.  
  154. a = .RxStrParser~new /* ¿¡¿µ¿á½¿ºáµ¿∩ ΓѬπΘÑ⌐ ½«¬á½∞ε, ß¼ $LANG */
  155.  
  156. mask = "/\s*([_a-zA-Z][a-zA-Z0-9._]*)\s*=\s*([^#]*)(#|$)(.*)/"
  157.  
  158. if a~setMask(mask) <> 0 then do
  159.   say 'Oops! Error: ' a~lastError
  160.   exit -1
  161. end;
  162.  
  163. say a~parse("a2 = 3"); /* αáºí«α¬á ßΓ᫬¿ */
  164. say a[1] /* 'a2'*/
  165. say a[2] /*3*/
  166.  
  167. exit 0
  168.  
  169.  
  170.     
  171.     
  172.