/db_自贡黄明儒_ 发表于 2016-4-7 11:06:58

指定字母后的数字

;;(parse10 "100D200 DE 1050 SF-1" "DE")=>1050.0
;;(parse10 "100D200 自贡105 自贡-1" "自贡")=>105.0
**** Hidden Message *****

HLCAD 发表于 2016-4-7 11:44:05

本帖最后由 HLCAD 于 2016-4-7 13:59 编辑

回复学习,感谢感谢!也可以这样:
(atof (substr "100D200 DE 1050 SF-1" (+ (vl-string-search "DE" "100D200 DE 1050 SF-1") (strlen "DE") 2)))

newer 发表于 2016-4-7 12:21:49

支持,不过用正则表达式,就一行代码的事。

819534890 发表于 2016-4-7 12:35:32

回复学习,O(∩_∩)O谢谢分享

桥云山 发表于 2016-4-7 12:53:49

学习大师作品

/db_自贡黄明儒_ 发表于 2016-4-7 13:04:28

本帖最后由 /db_自贡黄明儒_ 于 2016-4-7 13:08 编辑

newer 发表于 2016-4-7 12:21
支持,不过用正则表达式,就一行代码的事。
各有各的好处。N版,要不来个正则的?

display18 发表于 2016-4-7 15:12:17

不明白,过来看看                  

向嘟嘟 发表于 2016-4-7 20:48:19

下载学习,谢谢。

yoyoho 发表于 2016-4-8 07:01:05

回复学习,感谢分享程序!

tzfcn 发表于 2016-4-8 07:03:54

不错的代码,值得学习

天若有情007 发表于 2016-4-8 09:03:40

不错,学习学习

ynhh 发表于 2016-10-17 19:30:54

黄总很好
谢谢你

Lispboy 发表于 2016-10-17 19:56:04


(defun _findnumAfter (txt find)
(setq match (strcat "(?<=" find "[ ]+)+(\\.*)?"))
(xdrx_string_regexps match txt "")
)

命令: (setq a "100D200 DE 1050 SF-1" )
"100D200 DE 1050 SF-1"
命令: (_findnumafter a "DE")
("1050")

/db_自贡黄明儒_ 发表于 2016-10-18 08:14:37

本帖最后由 /db_自贡黄明儒_ 于 2016-10-18 08:19 编辑

Lispboy 发表于 2016-10-17 19:56

1   find前面加 "(?<=" 是起什么作用?
2   觉得+(\\.*)?写成 +是一样的吧?

lj524917100 发表于 2016-10-18 08:48:09

啥也不说了,感谢楼主分享哇!
页: [1] 2 3 4
查看完整版本: 指定字母后的数字