乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 72|回复: 19

[编程交流] 仅删除字母字符

[复制链接]

55

主题

325

帖子

274

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
280
发表于 2022-7-5 23:57:34 | 显示全部楼层 |阅读模式
有没有简单的方法?我试图使用vl string left trim删除所有字母或符号字符。只要我知道这个字符串中的所有内容,我就可以删除它们,但我不知道我是否总是这样。我宁愿有一个安全网,可以捕捉任何东西,以防它发生变化。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 00:00:59 | 显示全部楼层
使用vl string->list将字符串转换为ASCII字符代码列表,然后使用vl remove if和适当的谓词函数处理此列表,删除不符合条件的代码,然后使用vl list->string将生成的ASCII代码列表转换回字符串。
 
这是一个ASCII字符代码参考。
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-6 00:06:56 | 显示全部楼层
李,你的解析数呢。lsp,但ascii值设置为非数字作为方法示例。
回复

使用道具 举报

55

主题

325

帖子

274

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
280
发表于 2022-7-6 00:10:04 | 显示全部楼层
李-谢谢你的回复。我尝试了一种类似于你今天早些时候建议的方法,但没有成功。我在运行vl string->list后得到了返回的ascii码,但当我尝试使用vl remove if时,我得到了一个错误,指出“比较的参数类型错误”。我知道这可能与我试图获取返回“T”的值时犯的错误有关,但我的大脑已经崩溃了。我认为我的搜索正在引导我走上正确的道路,但我的经验不足使我无法很快地朝着这个方向前进。我明天再拿回来。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 00:12:18 | 显示全部楼层
示例。。。
 
  1. (vl-list->string (vl-remove-if (function (lambda (u) (or (< 64 u 91) (< 96 u 123)))) (vl-string->list "Abcd12345XwZ")))
回复

使用道具 举报

5

主题

1334

帖子

1410

银币

限制会员

铜币
-20
发表于 2022-7-6 00:14:22 | 显示全部楼层
看看突出显示的数字,塔尔瓦特。。。
 
  1. (vl-list->string (vl-remove-if (function (lambda (u) (or (< 64 u 91) (< [highlight]96[/highlight] u 123)))) (vl-string->list "Abcd12345XwZ")))
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 00:19:25 | 显示全部楼层
 
感谢Marko的更正,非常感谢。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 00:21:33 | 显示全部楼层
为什么不呢?
 
  1. (vl-list->string
  2.      (vl-remove-if-[b]not[/b]
  3. (function (lambda (u) [b](< 47 u 58)[/b]))
  4. (vl-string->list str)
  5.      )
  6.    )
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 00:23:26 | 显示全部楼层
香草
 
  1. (defun numbers1 (str / a b)
  2. (setq a "")
  3. (repeat (strlen str)
  4.    (if        (< 47 (ascii (setq b (substr str 1 1))) 58)
  5.      (setq a (strcat a b))
  6.    )
  7.    (setq str (substr str 2))
  8. )
  9. a
  10. )

 
  1. (defun numbers2 (str / a b)
  2. (repeat (strlen str)
  3.    (if        (< 47 (ascii (setq b (substr str 1 1))) 58)
  4.      (setq a (cons b a))
  5.    )
  6.    (setq str (substr str 2))
  7. )
  8. (apply 'strcat (reverse a))
  9. )
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
358
发表于 2022-7-6 00:27:20 | 显示全部楼层
 
另一个
 
  1. (mapcar 'vl-list->string
  2.        (list (vl-remove-if
  3.                '(lambda (u)
  4.                   (not (member u '(48 49 50 51 52 53 54 55 56 57))
  5.                   )
  6.                 )
  7.                (vl-string->list "Abcd12345X7789wZ")
  8.              )
  9.        )
  10. )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 22:31 , Processed in 0.581943 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表