xx16451860 发表于 2016-1-16 21:56:21

求字一个有关处理符串的函数

举个例子,判断字符串"xby" 是否被包含于"xnbnhjymh"中,必须是三个字符都在其中,而且位置不受限制。wcmatch这个函数只要有一个在其中就返回T所以不能用,求解!!!

ll_j 发表于 2016-1-16 22:44:51

使用逻辑运算符and
(and (wcmatch "xnbnhjymh" *x*") (wcmatch "xnbnhjymh" "*b*)...)

xx16451860 发表于 2016-1-16 23:06:53

ll_j 发表于 2016-1-16 22:44 static/image/common/back.gif
使用逻辑运算符and
(and (wcmatch "xnbnhjymh" *x*") (wcmatch "xnbnhjymh" "*b*)...)

还有字符的个数不能确定,这个操作起来太麻烦!

ivde 发表于 2016-1-17 07:16:37

[ 本帖最后由 ivde 于 2016-1-17 07:24 编辑 ]\n\n

(wcmatch "xnbnhjymh" "****")
or
(wcmatch "xnbnhjymh" "*x*b*y*")

xx16451860 发表于 2016-1-17 09:59:42

ivde 发表于 2016-1-17 07:16 static/image/common/back.gif
[ 本帖最后由 ivde 于 2016-1-17 07:24 编辑 ]\n\n

(wcmatch "xnbnhjymh" "****")


把字符换成变量呢?上面只是举个例子,要是"xm""xbymh"这个呢?字符的个数不确定,位置也不固定,只是判断是否包含在里面!!

ivde 发表于 2016-1-17 10:05:05

xx16451860 发表于 2016-1-17 09:59
把字符换成变量呢?上面只是举个例子,要是"xm""xbymh"这个呢?字符的个数不确定,位置也不固定,只是判 ...

你不会用strcat 啊!

xx16451860 发表于 2016-1-17 10:14:39

ivde 发表于 2016-1-17 10:05 static/image/common/back.gif
你不会用strcat 啊!

如果要呢么简单我早就弄好了! "xnbnhjymh" 你说的这个 (wcmatch "xnbnhjymh" "****")这种也返回T,我要的是全部包含!

ivde 发表于 2016-1-17 10:19:28

本帖最后由 ivde 于 2016-1-17 10:20 编辑

你漏了 x
(wcmatch str (strcat "*" str1 "*" str2 "*"))

xx16451860 发表于 2016-1-17 10:29:08

ivde 发表于 2016-1-17 10:19 static/image/common/back.gif
你漏了 x
(wcmatch str (strcat "*" str1 "*" str2 "*"))

首先字符不确定,个数不确定,位置不确定,要判断是否被包含其中,
我要的是
"xnbnhjymh"
"xbm" 返回T
"nhy" 返回T
"xnb" 返回T
"nhj" 返回T
"ymh"返回T
……
"qbm" 返回nil
"xwh" 返回nil
"fgkds" 返回nil
……

ivde 发表于 2016-1-17 10:32:09

本帖最后由 ivde 于 2016-1-17 10:36 编辑

xx16451860 发表于 2016-1-17 10:29
首先字符不确定,个数不确定,位置不确定,要判断是否被包含其中,
我要的是
"xnbnhjymh"

把字符串处理下,首尾及两两中间加 “*”
(wcmatch str
       (strcat "*"
               (apply        'strcat
                        (mapcar        '(lambda (x) (strcat (chr x) "*"))
                                (vl-string->list matstr)
                        )
               )
       )
)
页: [1] 2
查看完整版本: 求字一个有关处理符串的函数