明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 633|回复: 14

贴个函数,判断是否全部为中文函数

[复制链接]
发表于 2024-6-11 19:15 | 显示全部楼层 |阅读模式
本帖最后由 jun353835273 于 2024-6-11 19:18 编辑


  1. 贴个函数,判断是否全部为中文函数
  2. (defun ZZ:StringisChs(str / )
  3. (vl-every '(lambda (X) (> X 128)) (vl-remove 32 (vl-string->list  str)) )
  4. )
  5. 感觉比较精简就贴上来了,抛砖引玉。
发表于 2024-6-12 16:24 | 显示全部楼层
本帖最后由 1291500406 于 2024-6-12 17:15 编辑

  • 贴个函数,判断是否全部为中文函数
  • (defun ZZ:StringisChs(str / )
  •    (vl-every '(lambda (X) (> X 128)) (vl-remove 32 (vl-string->list  str)) )
  • )
    1. (ZZ:StringisChs "ノ")
    复制代码
    1. (wcmatch  "ノ"  "*[\U+4e00-\U+9fff]*")
    复制代码
    の_百度百科 (baidu.com)

这句话并不是表明判断是否全部为中文函数 而是表明非字母的文字 而非字母也有可能是日文 韩文。



  1. 其他语言表明 汉字范围是   '\u4e00' <= char <= '\u9fff'
  2. python
  3. def is_chinese(char):
  4.     if '\u4e00' <= char <= '\u9fff':
  5.         return True
  6.     else:
  7.         return False
复制代码


  1. 而 (wcmatch "要 的" "*[一-龥]*")是错的
  2. 龥字是9fa5 -  9fff 有一 段空白区

  3. (PRINT "\U+9fa5")
  4. (PRINT "\U+9fa6")

  5. 测试
  6. (wcmatch "\U+9fa5"  "*[一-龥]*")  t
  7. (wcmatch "\U+9fa6"  "*[一-龥]*")  nil
复制代码


  1. 应该是

  2. 命令: (PRINT "\U+4e00")
  3. 命令: (PRINT "\U+9fff")

  4. 判断是否全部为中文函数 包括空格
  5. (wcmatch "要 的" "~*[~\U+4e00-\U+9fff ]*")

  6. 判断是否全部为中文函数 不包括空格
  7. (wcmatch "要 的" "~*[~\U+4e00-\U+9fff]*")

  8. 判断是否存在中文函数
  9. (wcmatch "要 的" "*[\U+4e00-\U+9fff]*")



复制代码








评分

参与人数 2明经币 +2 收起 理由
hubeiwdlue + 1 赞一个!
自贡黄明儒 + 1 赞一个!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2024-6-16 13:59 | 显示全部楼层
自贡黄明儒 发表于 2024-6-12 09:29
我写过一个《判断字符串中是否有汉字》http://bbs.xdcad.net/forum.php?mod=viewthread&tid=706787&highlig ...

黄大师,你这个是参考正则的用法,但是*在lisp中,好像不是量词,lisp这块和vba正则表达式是一样的吗?
发表于 2024-6-11 19:29 | 显示全部楼层
不错,函数都是作用大
发表于 2024-6-11 22:33 | 显示全部楼层
大佬,介绍下运用场景
 楼主| 发表于 2024-6-11 22:57 | 显示全部楼层
czb203 发表于 2024-6-11 22:33
大佬,介绍下运用场景

有些地方需要判断是不是用的中文,我是ssget w 发现精度有问题选了不该选的,但是不需要中文,干脆就搞个这个函数过滤,我看论坛的输入法切换的也有坚持原文字是否为中文的,为中文就切换为中文。
发表于 2024-6-11 22:58 | 显示全部楼层
jun353835273 发表于 2024-6-11 22:57
有些地方需要判断是不是用的中文,我是ssget w 发现精度有问题选了不该选的,但是不需要中文,干脆就搞个 ...

谢谢大佬答疑解惑
发表于 2024-6-12 05:44 来自手机 | 显示全部楼层
32什么意思?
发表于 2024-6-12 09:29 | 显示全部楼层
我写过一个《判断字符串中是否有汉字》http://bbs.xdcad.net/forum.php?m ... =%E6%B1%89%E5%AD%97
 楼主| 发表于 2024-6-12 09:53 | 显示全部楼层
自贡黄明儒 发表于 2024-6-12 09:29
我写过一个《判断字符串中是否有汉字》http://bbs.xdcad.net/forum.php?mod=viewthread&tid=706787&highlig ...

(wcmatch "要 的" "*[一-龥]*")确实精简,比较好奇你这是咋想到的
发表于 2024-6-12 12:56 | 显示全部楼层
很是不错的东西啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-27 14:23 , Processed in 0.145715 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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