明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2164|回复: 3

[求助]字符串处理:正则表达式问题

[复制链接]
发表于 2007-8-13 23:05 | 显示全部楼层 |阅读模式
前几日看了无痕的,想试试看,却出了问题
Matches 集合总返回是只有一个呢?
  1. [code];;;正则表达式字符串.
  2. ;;功能 对字符串进行正则表达式匹配测试.
  3. ;;参数: pat = 正则表达式模式 ,对应vbs正则表达式的模式(expression)。说明: \ 号要用 \\ 替代.
  4. ;;     str = 字符串
  5. ;;     key = "i" "g" "m" , "i"不区分大小写(Ignorecase),"g"全局匹配(Global).”m”多行模式(Multiline),以上几个关键字可以组合使用,或用""
  6. ;;返回: 返回匹配的字符列表,或无一匹配返回nil
  7. (defun NBTF_RegExP( pat str key / regex s str1)
  8.    (setq regex(vlax-create-object "Vbscript.RegExp")) ;引用正则表达式控件
  9.    (if (wcmatch key "*i*,*I*")
  10.      (vlax-put-property regex "IgnoreCase" 0) ;不忽略大小写
  11.      (vlax-put-property regex "IgnoreCase" 1)
  12.    )
  13.   (if (wcmatch key "*g*,*G*")
  14.      (vlax-put-property regex "Global" 1) ;匹配方式,全文字匹配
  15.      (vlax-put-property regex "Global" 0)
  16.    )
  17.   (if (wcmatch key "*m*,*M*")
  18.      (vlax-put-property regex "Multiline" 1) ;多行模式
  19.      (vlax-put-property regex "Multiline" 0)
  20.    )
  21.    ;;(setq s str)
  22.    (vlax-put-property regex "Pattern" pat)
  23.    (setq s(vlax-invoke-method  regex "Execute" str))
  24.    
  25.    (VLAX-FOR tmp s
  26.      (setq str1 (cons (vlax-get-property tmp "value") str1))
  27.    )
  28.   (vlax-release-object regex)
  29.   str1
  30. )

[/code]_$ (setq a(NBTF_REGEXP"[+|-]?\\d*\\.?\\d+(e[+|-]*\\d+)*" "abdfsdf-1e4-31++3485..3.1a.38 3..14f-.86e-1d3.a4f8.48" ""))
("-1e4")
_$
_$
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2007-8-14 01:01 | 显示全部楼层
本帖最后由 作者 于 2007-8-14 1:04:16 编辑

"Global" 属性!

我为了方便,把gi等属性定义翻转了.

按你写的,加"g"就对了.

命令: (setq a(NBTF_REGEXP"[+|-]?\\d*\\.?\\d+(e[+|-]*\\d+)*"
"abdfsdf-1e4-31++3485..3.1a.38 3..14f-.86e-1d3.a4f8.48" "g"))
("8.48" "4" "3" "-.86e-1" ".14" "3" ".38" ".1" ".3" "+3485" "-31" "-1e4")

发表于 2007-8-14 01:06 | 显示全部楼层

好像应该再reverse一下:)

发表于 2012-7-2 10:08 | 显示全部楼层
好东西,学习了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-3 06:37 , Processed in 0.364402 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表