指定字母后的数字
;;(parse10 "100D200 DE 1050 SF-1" "DE")=>1050.0;;(parse10 "100D200 自贡105 自贡-1" "自贡")=>105.0
**** Hidden Message ***** 本帖最后由 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)))
支持,不过用正则表达式,就一行代码的事。 回复学习,O(∩_∩)O谢谢分享 学习大师作品
本帖最后由 /db_自贡黄明儒_ 于 2016-4-7 13:08 编辑
newer 发表于 2016-4-7 12:21
支持,不过用正则表达式,就一行代码的事。
各有各的好处。N版,要不来个正则的?
不明白,过来看看 下载学习,谢谢。 回复学习,感谢分享程序! 不错的代码,值得学习 不错,学习学习
黄总很好
谢谢你
(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:19 编辑
Lispboy 发表于 2016-10-17 19:56
1 find前面加 "(?<=" 是起什么作用?
2 觉得+(\\.*)?写成 +是一样的吧?
啥也不说了,感谢楼主分享哇!