找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1241|回复: 4

[每日一码] 获取文字中的钢筋字符串

[复制链接]

已领礼包: 202个

财富等级: 日进斗金

发表于 2020-5-28 16:50:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 dyjwyqz5221 于 2020-6-13 10:14 编辑


[Actionscript3] 纯文本查看 复制代码
(defun get::barfh(str / pat)
	(setq pat "%%132%%140R%%141|%%130%%140RH%%141|%%130|%%131|%%132|%%133")
	(xdrx_string_regexps pat str)
);;;defun


命令: (setq str "10层箍筋%%1318-100/150,核心区箍筋:%%1328@100/150(%%130%%140RH%%14110-100)")
"10层箍筋%%1318-100/150,核心区箍筋:%%1328@100/150(%%130%%140RH%%14110-100)"

命令: (get::barfh str)
("%%131" "%%132" "%%130%%140RH%%141")

评分

参与人数 1D豆 +5 收起 理由
marting + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 20个

财富等级: 恭喜发财

发表于 2020-5-28 17:55:35 | 显示全部楼层
  1. (defun xd::string:gangin (str / v)
  2.   (setq        lst '("%%132%%140R%%141"  "%%132"
  3.               "%%133"                  "%%131"
  4.               "%%130%%140RH%%141"
  5.              )
  6.   )
  7. ;;;可自己增加钢筋符号
  8.   (vl-some '(lambda (x) (setq v (xd::string:regexps str x "")))
  9.            lst
  10.   )
  11.   (car v)
  12. )


命令: (xd::string:gangin "%%1328@100/150")
"%%132"

点评

函数有点问题吧,测试了一下,改成这样就可以了 (defun xd::string:gangin (str / v) (setq lst '("%%132%%140R%%141" "%%132" "%%133" "%%131" "%%130%%140RH%%141"));;;可自己增加钢筋符号 (vl-some '(la  详情 回复 发表于 2020-5-29 10:00

评分

参与人数 1D豆 +10 收起 理由
dyjwyqz5221 + 10 热心帮忙奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2020-5-29 10:00:50 | 显示全部楼层
marting 发表于 2020-5-28 17:55
命令: (xd::string:gangin "%%1328@100/150")
"%%132"

函数有点问题吧,测试了一下,改成这样就可以了
(defun xd::string:gangin (str / v)
        (setq lst '("%%132%%140R%%141" "%%132" "%%133" "%%131" "%%130%%140RH%%141"));;;可自己增加钢筋符号
        (vl-some
                '(lambda (x)
                        (setq v (xdrx_string_regexps x str ""))
                )
                   lst
         )
          (car v)
)


我还真想用正则法则替换来着,没想出办法了,你给想到了,非常感谢!


测试下两个函数的效率:
(defun c:tt(/ str)
        (setq str "8%%13318")
        (repeat 5
                  (xd::quickbench '((get::barfh str)(xd::string:gangin str)))
        )
        (princ)
);;;defun

命令: TT
CPU:(1x)Intel(R) Core(TM) i7-7700 @ 3.60GHz 4Cores  / Memory:24G / OS:WIN10专业版
Benchmarking ....... done for 8192 iterations. Sorted from fastest.
Statement                    Increment  Time(ms)  Normalize  Relative
-------------------------------------------------------------------------------
(GET::BARFH STR)                  8192      1203       1203      2.10 <fastest>
(XD::STRING:GANGIN STR)           4096      1266       2532      1.00 <slowest>
-------------------------------------------------------------------------------
CPU:(1x)Intel(R) Core(TM) i7-7700 @ 3.60GHz 4Cores  / Memory:24G / OS:WIN10专业版
Benchmarking ....... done for 8192 iterations. Sorted from fastest.
Statement                    Increment  Time(ms)  Normalize  Relative
-------------------------------------------------------------------------------
(GET::BARFH STR)                  8192      1188       1188      2.16 <fastest>
(XD::STRING:GANGIN STR)           4096      1281       2562      1.00 <slowest>
-------------------------------------------------------------------------------
CPU:(1x)Intel(R) Core(TM) i7-7700 @ 3.60GHz 4Cores  / Memory:24G / OS:WIN10专业版
Benchmarking ....... done for 8192 iterations. Sorted from fastest.
Statement                    Increment  Time(ms)  Normalize  Relative
-------------------------------------------------------------------------------
(GET::BARFH STR)                  8192      1172       1172      2.16 <fastest>
(XD::STRING:GANGIN STR)           4096      1266       2532      1.00 <slowest>
-------------------------------------------------------------------------------
CPU:(1x)Intel(R) Core(TM) i7-7700 @ 3.60GHz 4Cores  / Memory:24G / OS:WIN10专业版
Benchmarking ....... done for 8192 iterations. Sorted from fastest.
Statement                    Increment  Time(ms)  Normalize  Relative
-------------------------------------------------------------------------------
(GET::BARFH STR)                  8192      1172       1172      2.16 <fastest>
(XD::STRING:GANGIN STR)           4096      1266       2532      1.00 <slowest>
-------------------------------------------------------------------------------
CPU:(1x)Intel(R) Core(TM) i7-7700 @ 3.60GHz 4Cores  / Memory:24G / OS:WIN10专业版
Benchmarking ....... done for 8192 iterations. Sorted from fastest.
Statement                    Increment  Time(ms)  Normalize  Relative
-------------------------------------------------------------------------------
(GET::BARFH STR)                  8192      1188       1188      2.08 <fastest>
(XD::STRING:GANGIN STR)           4096      1234       2468      1.00 <slowest>
-------------------------------------------------------------------------------
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 4365个

财富等级: 富可敌国

发表于 2020-5-30 00:00:48 | 显示全部楼层
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

已领礼包: 202个

财富等级: 日进斗金

 楼主| 发表于 2020-6-13 10:09:31 | 显示全部楼层
这样取钢筋符号最方便:

[Actionscript3] 纯文本查看 复制代码
(defun get::gjfh(str / pat)
        (setq pat "%%132%%140R%%141|%%130%%140RH%%141|%%130|%%131|%%132|%%133")
        (xdrx_string_regexps pat str)
);;;defun



命令: (setq str "10层核心区箍筋:%%1328@100/150(%%130%%140RH%%14110-100)")
"10层核心区箍筋:%%1328@100/150(%%130%%140RH%%14110-100)"

命令: (get::gjfh str)
("%%132" "%%130%%140RH%%141")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-22 02:01 , Processed in 0.480586 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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