惜惜2 发表于 2024-10-17 16:38:17

帮忙修正一下

本帖最后由 惜惜2 于 2024-10-17 16:42 编辑

          (setq E1 "2024-10-17")
          (setq E3 E1)
          (if E3
            (progn
            (setq E3E "\\d{4}-\\d{2}-\\d{2}")
            (setq E4E "\\d{4}/\\d{2}/\\d{2}")
            (if (or (not (wcmatch E3 E3E))
                      (not (wcmatch E3 E4E)))
                (setq E4 (strcat (substr E3 2 4)
                                 "-"
                                 (substr E3 6 2)
                                 "-"
                                 (substr E3 8 2)))
                (setq E4 nil)))
          )正常E4返回的值应该是空才对,前面判定结果应该是相等才对,但是实际运行了后面取值的代码,需求是不等才会运行取值的代码,是不是正则表达式那里有问题?

13605 发表于 2024-10-17 18:12:37

wcmatch 可以用正则吗?好像是用通配符

统一网名 发表于 2024-10-17 19:53:42

本帖最后由 统一网名 于 2024-10-17 20:50 编辑


[*](defun c:t6 (/ current-date format1 format2)
[*];; 获取当前日期
[*](setq current-date "2024-10-17")
[*];; 定义两种可能的日期格式
[*](setq format1 "????-??-??" )
[*](setq format2 "????/??/??" )
[*];; 判断当前日期是否符合其中一种格式
[*](if (or (wcmatch current-date format1)(wcmatch current-date format2))
[*]    (princ "ok")
[*]    (princ "no")
[*])
[*])
看一下是否有帮助

惜惜2 发表于 2024-10-19 17:26:49

13605 发表于 2024-10-17 18:12
wcmatch 可以用正则吗?好像是用通配符

通配符可以感谢

惜惜2 发表于 2024-10-19 17:28:03

统一网名 发表于 2024-10-17 19:53
[*](defun c:t6 (/ current-date format1 format2)
[*];; 获取当前日期
[*](setq current-date "20 ...

可以了,感谢,和楼上一样通配符的方法:lol
页: [1]
查看完整版本: 帮忙修正一下