shakuhachi 发表于 2022-7-6 09:00:35

查找文本

大家好!我又卡住了,需要你的帮助。
 
如何找到字符串中第一个非数字的字符串位置?我想提取字符串中的文本。
 
“1234ASDF”返回5
“64 ZXC”返回4-->不包括“空格”
“845.25LKJH”返回7
 
谢谢

Lee Mac 发表于 2022-7-6 09:20:20

(defun _extracttext ( s )
   (vl-list->string
       (vl-remove-if-not '(lambda ( x ) (or (< 64 x 91) (< 96 x 123)))
         (vl-string->list s)
       )
   )
)
(vl-load-com)
 
_$ (_extracttext "845.25LKJH")
"LKJH"
_$ (_extracttext "1234ASDF")
"ASDF"
_$ (_extracttext "64 ZXC")
"ZXC"

shakuhachi 发表于 2022-7-6 09:36:50

这很快。再次感谢李!

Lee Mac 发表于 2022-7-6 09:55:42

或者,如您最初所问,要找到该职位:
 
(defun _firstalpha ( s / i )
   (setq i 0)
   (vl-some '(lambda ( x ) (setq i (1+ i)) (or (< 64 x 91) (< 96 x 123))) (vl-string->list s))
   i
)
 
_$ (_firstalpha "1234ASDF")
5
_$ (_firstalpha "64 ZXC")
4
_$ (_firstalpha "845.25LKJH")
7

shakuhachi 发表于 2022-7-6 10:01:15

谢谢李,这将在未来派上用场。。。
 
页: [1]
查看完整版本: 查找文本