phoenixdjq 发表于 2014-12-3 09:53:41

关于特殊符号的查找

引号 "   在程序中是用来表示字符串的特征

例如cad中如下文字:
3" SCH80 PIPE SMLS ,BE ,ASTM A106 Gr.B
如果要查找"该如何做呢?
(setq ss (ssget '((1 . "#\"*") )))   这个语句可以在cad中找到这串文字

但是有些命令

(substr "\"""3" SCH80 PIPE SMLS ,BE ,ASTM A106 Gr.B" )   这个语句因为" 不成对,总是提示错误

还有些命令,像
(vl-string->liststring)
(vl-list->string)
都无法使用


请高手指点,如果才能让" 能够像普通的字符,进行操作,谢谢!


自贡黄明儒 发表于 2014-12-3 10:07:03

本帖最后由 自贡黄明儒 于 2014-12-3 10:13 编辑

"SCH80 PIPE SMLS ,BE ,ASTM A106 Gr.B"少引号,substr是什么用法来着?

lijiao 发表于 2014-12-3 12:43:09

把“变成\“即可
substr是求子串

phoenixdjq 发表于 2014-12-3 16:23:21

3" SCH80 PIPE SMLS ,BE ,ASTM A106 Gr.B
这里3后面的"是 代表英寸的意思

(substr "\"" "3\" SCH80 PIPE SMLS ,BE ,ASTM A106 Gr.B")

(substr "\""   "3" SCH80 PIPE SMLS ,BE ,ASTM A106 Gr.B")

这两个语句都是不对的,无法使用

ll_j 发表于 2014-12-3 17:23:21

phoenixdjq 发表于 2014-12-3 16:23 static/image/common/back.gif
3" SCH80 PIPE SMLS ,BE ,ASTM A106 Gr.B
这里3后面的"是 代表英寸的意思



你到底想干什么呢?subst是替换的意思,substr是取子字符串,你的语法都不对,所以语句不能用。

phoenixdjq 发表于 2014-12-5 10:22:57

文字中包含了分号 "
但是成对的"又是字符串的特征
如果用\" 来代替 "的话,在一个字符串中"的数量是单数,又不满足"的成对出现
这好像是个矛盾

有没有什么好办法能解决这个问题

ll_j 发表于 2014-12-5 11:24:16

phoenixdjq 发表于 2014-12-5 10:22 static/image/common/back.gif
文字中包含了分号 "
但是成对的"又是字符串的特征
如果用\" 来代替 "的话,在一个字符串中"的数量是单 ...

并不矛盾,在文本中出现的引号加前缀,系统就不会识别成成对的特征字符,与多少无关,有一个算一个。
你的句子不通过不是这个问题,而是函数substr的语法不对,看了你的句子,不知道你要干什么。

phoenixdjq 发表于 2014-12-5 11:51:51

本帖最后由 phoenixdjq 于 2014-12-5 11:59 编辑

是我用错了函数,不好意思
我是想找到"在字符串3" SCH80 PIPE SMLS ,BE ,ASTM A106 Gr.B中的位置
3“是3英寸的意思

应该用:
(vl-string-search "\"""3\" SCH80 PIPE SMLS ,BE ,ASTM A106 Gr.B "))


钻进死胡同,终于出来了,谢谢!

langke52 发表于 2017-12-27 13:26:48

来学习下
页: [1]
查看完整版本: 关于特殊符号的查找