zzl9105 发表于 2014-1-13 16:25:19

截去某个字符后面的文字,留下前面的字符

各位大侠好,
如题,不知道本论坛有没有现成的源码,
现在正在处理很多这样的字符串,
如下: N=45808,M=2547
我想把逗号","后面的字符全部去掉(含逗号),
为了方便进行计算。

这两天要急着出基础图,没有时间去琢磨自己编源码了,
希望哪位大侠帮帮忙,谢谢!!!

zzl9105 发表于 2018-5-23 12:09:39

自贡黄明儒 发表于 2014-1-14 08:20
(atoi (VL-STRING-LEFT-TRIM "N=" "N=45808,M=2547"))=>45808

大师,你好
比如目标字符串为:“10 D16”,其中D前面有一个空格,我要截取的是“D”后面的16,下面的表达:
(setq a "10 D16")
(vl-string->list a 5 2)
经测试,vl它没有返回想要的结果,请教一下大儒,有什么好的式子么,谢谢!!!

自贡黄明儒 发表于 2018-5-23 13:18:49

zzl9105 发表于 2018-5-23 12:09
大师,你好
比如目标字符串为:“10 D16”,其中D前面有一个空格,我要截取的是“D”后面的16,下面的表 ...

(VL-STRING-right-TRIM "0123456789" "10 D16")=>"10 D"

llsheng_73 发表于 2014-1-13 16:55:03

本帖最后由 llsheng_73 于 2014-1-14 15:12 编辑

_$ (setq str"N=45808,M=2547")
(vl-princ-to-string(cadr(read(strcat"("(vl-string-translate "=," ""str)")"))))
"N=45808,M=2547"
"45808"
_$
$ (setq str"N=45808,M=2547")
(cadr(read(strcat"("(vl-string-translate "=," ""str)")")))
"N=45808,M=2547"
45808
只要你有确保没有扩展ASCII字符或者中文在STR里边,可以放心用READ来读取

zzl9105 发表于 2014-1-13 18:03:49

llsheng_73 发表于 2014-1-13 16:55 static/image/common/back.gif
(setq str"N=45808,M=2547")
(read(strcat"("(vl-string-translate "," " "str)")"))

其实,我只要“N=”后面的数字45808,
其它的都不要,
而且有好多这样的字符要处理的。

dkfylxs 发表于 2014-1-13 19:25:47

(defun tt (str / pos)
(setq pos (vl-string-position 61 str))
(substr str (+ pos 2) (1- (- (vl-string-position 44 str) pos)))
)

adc 发表于 2014-1-13 19:53:38



用这个试试

自贡黄明儒 发表于 2014-1-14 08:20:51

(atoi (VL-STRING-LEFT-TRIM "N=" "N=45808,M=2547"))=>45808

llsheng_73 发表于 2014-1-15 08:09:15

自贡黄明儒 发表于 2014-1-14 08:20 static/image/common/back.gif
(atoi (VL-STRING-LEFT-TRIM "N=" "N=45808,M=2547"))=>45808

这样也可以,真服了...

zzl9105 发表于 2014-1-18 16:09:42

自贡黄明儒 发表于 2014-1-14 08:20 static/image/common/back.gif
(atoi (VL-STRING-LEFT-TRIM "N=" "N=45808,M=2547"))=>45808

谢谢,atoi,这么厉害,它自己知道只转换前面的整数?
谢谢你,黄大侠!!!

lyqiezi 发表于 2014-1-18 16:15:15

其实查找一下",M"这两个字符就好了啊

lyqiezi 发表于 2014-1-18 17:26:41

本帖最后由 lyqiezi 于 2014-1-18 17:29 编辑

献丑了,自己平时用的别的lsp改的,因为水瓶有限,所以源码就不放了
图层是根据ftarget文件的,如果文字的图层有什么要求,说了我再改吧
页: [1] 2 3
查看完整版本: 截去某个字符后面的文字,留下前面的字符