如何分别提取一个字符串中某个字符前面和后面的数字?
如何分别提取一个字符串中某个字符前面和后面的数字?比如:我得到的字符是”200X100“ 我想分别提取这个字符串中的 200 和100 求大神帮忙 ,
或者说我可以换个方法解决,我想用200X100的结果和20000比较大小。
问题是,我两个方法都不知道怎么办,只能求助了
正则 [^X]即可,自己去搜索下。。。 老哥,既然回复了麻烦好人做到底啊 对于你们来说应该很简单的,帮帮忙了
sunqv 发表于 2023-5-13 21:13
老哥,既然回复了麻烦好人做到底啊 对于你们来说应该很简单的,帮帮忙了
找个正则函数,,把按要求填参数,,,,搜个正则还要我帮你??论坛大神贡献了好多,免费的! 顶一下 求助大神 命令: (get-numbers-side-of-x "200X300")
("200" "300")
命令: (get-numbers-side-of-x "ab200X300cd")
("200" "300")
命令:
命令: (get-numbers-side-of-x "ab200X300")
("200" "300")
命令: (get-numbers-side-of-x "ab200x300")
("200" "300")
命令: (get-numbers-side-of-x "ab200x500")
("200" "500")
命令: (get-numbers-side-of-x "ab20.0x50.0")
("20.0" "50.0")
(defun get-numbers-side-of-x (str)
(setq lst (mapcar 'strcase (string:auto-split str)))
(if
(and
(member "X" lst)
(> (setq pos (vl-position "X" lst)) 0)
(string:numberp (nth (1- pos) lst))
(string:numberp (nth (1+ pos) lst))
)
(list (nth (1- pos) lst) (nth (1+ pos) lst))
)
) 感兴趣可以研究一下这个帖子:
http://bbs.mjtd.com/thread-187723-1-1.html vitalgg 发表于 2023-5-13 23:25
命令: (get-numbers-side-of-x "200X300")
("200" "300")
谢谢大佬提供函数
(defun StrSpr (str sub / lst n)
;; (StrSpr "200X100" "X") → ("200" "100")
(while (setq n (vl-string-search sub str))
(setq lst (cons (substr str 1 n) lst)
str (substr str (+ n (strlen sub) 1))
)
)
(vl-remove "" (reverse (cons str lst)))
) 用取得X号在字符串中的位置,就可以用修剪的方法了。
页:
[1]
2