明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1292|回复: 7

[提问] 求大神帮我改一下文本数字求和

[复制链接]
发表于 2020-8-20 10:05 | 显示全部楼层 |阅读模式
这个文字前面或者中间有其他数字,就统计不出来,想要文字前面可以加数字,只统计文字后面的数字,多谢大神以下是复制的论坛帖子的源码:
工具用到的正则表达式的函数搬来此处。
[code="lisp] ;;--------------------------------------------正则表达式----------------------------------------------------;;
(defun xxexp (pat str key / end)
  ;(princ "\n ★"一刀屠文"(xxexp)(xxexpr) = 对字符串进行正则表达式测试及替换-by 梁雄啸.2007.7")
  (vl-load-com)
  (if (not *xxvbsexp)
    (setq *xxvbsexp (vlax-get-or-create-object "VBScript.RegExp"))
  )
  (vlax-put *xxvbsexp 'Pattern pat)
  (if (not key)(setq key ""))  
  (setq key (strcase key))
  (setq keys '(("I"  "IgnoreCase")("G"  "Global")("M"  "Multiline")))
  (mapcar '(lambda(x)
       (if (wcmatch key (strcat "*" (car x) "*"))
         (vlax-put *xxvbsexp (read(cadr x)) 0)
         (vlax-put *xxvbsexp (read(cadr x)) -1)
         ))
    keys)
  (setq matches (vlax-invoke *xxvbsexp 'Execute str))
  (vlax-for x matches (setq end (cons (vla-get-value x) end)))
  (reverse end)
)
;;--------------------------------------------end----------------------------------------------------;;[/code]

本帖子中包含更多资源

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

x
发表于 2023-5-26 11:33 | 显示全部楼层
本帖最后由 foolishzy 于 2023-5-26 11:46 编辑
  1. (defun c:tttt()
  2.   (defun ZML-CLIP-SETSTRING (STR / HTML RESULT)
  3.   (and (= (type STR) 'STR)
  4.     (setq HTML (vlax-create-object "htmlfile"))
  5.     (setq RESULT (vlax-invoke
  6.                    (vlax-get (vlax-get HTML 'PARENTWINDOW)
  7.                      'CLIPBOARDDATA
  8.                    )
  9.                    'SETDATA
  10.                    "Text"
  11.                    STR
  12.                  )
  13.     )
  14.     (vlax-release-object HTML)
  15.   )
  16. )
  17.   (defun regexp(s p / r L )
  18.     (setq r (vlax-create-object "vbscript.regexp"))
  19.     (vlax-put-property r 'Global 1)
  20.     (vlax-put-property r 'Pattern p)
  21.     (vlax-for x (vlax-invoke r 'Execute s)(setq L (cons (vla-get-value x) L)))
  22.     (vlax-release-object r)
  23.     (reverse L)
  24.   )
  25. (defun count-fruits (fruit-list)
  26.   (setq result (list))
  27.   (foreach item fruit-list
  28.     (setq fruit (car item))
  29.     (setq quantity (cadr item))
  30.     (if (assoc fruit result)
  31.       (setq quantity (+ quantity (cdr (assoc fruit result))))
  32.       )
  33.     (setq result (cons (cons fruit quantity) (vl-remove (assoc fruit result) result)))
  34.     )
  35.   result
  36.   )
  37.   (defun pickset_to_enamelist(pickset / ss sslst )
  38.   (setq ss pickset sslst '())
  39.   (while (setq n (ssname ss 0))
  40.     (progn
  41.       (setq sslst (append sslst (list n)))
  42.       (ssdel n ss)
  43.     )
  44.   )
  45.   sslst
  46. )
  47.   (defun p1(str)
  48.     (vl-list->string (vl-remove 32 (vl-string->list str)))
  49.     (setq num (last (regexp str "\\d+")))
  50.     (setq head_str (vl-string-right-trim num str))
  51.     (list head_str (atoi num))
  52.   )
  53.   (setq ss(ssget '((0 . "*ext"))))
  54.   (setq lst (pickset_to_enamelist ss))
  55.   (setq name-lst (list))
  56.   (setq temp (list))
  57.   (foreach l lst
  58.     (setq temp (append   temp  (list (p1(Vlax-Get (Vlax-Ename->Vla-Object l) 'TextString    )))))
  59.   )
  60.   (setq result (count-fruits temp))  
  61.   (setq str "")
  62.   (mapcar (function (lambda (x)
  63.                       (setq str(strcat str (car x) (itoa (cdr x)) "\n")
  64.                     ))
  65.             )
  66.     result
  67.   )
  68.   (ZML-CLIP-SETSTRING str)
  69.   (command "PASTECLIP" (getpoint "\n pick point : "))
  70. )

回复 支持 2 反对 0

使用道具 举报

发表于 2023-5-26 11:41 | 显示全部楼层
不太会弄录屏

本帖子中包含更多资源

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

x
回复 支持 1 反对 0

使用道具 举报

发表于 2020-8-20 11:10 来自手机 | 显示全部楼层
不太懂LISP,不过感觉问题和你这段代码无关,主要在正则pattern上,不知道原来是什么样的,可以改成^.+?\d+$试试。
发表于 2022-11-23 08:51 | 显示全部楼层
兄弟你也用孤帆吗
发表于 2023-1-11 22:47 | 显示全部楼层
谢谢分享,今天刚好没币了,此程序正是我需要的。
发表于 2023-5-23 16:53 | 显示全部楼层
no function definition: XXEXP 显示出来这个
发表于 2023-10-17 21:53 | 显示全部楼层

大佬厉害,要是支持多行文本就好了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-25 14:20 , Processed in 0.157369 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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