找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1289|回复: 9

[建议]:再一起来写个东东吧 ,关于wcmatch的

[复制链接]

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-3-15 11:24:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我们经常写  : (wcmatch  "12345" "1*")  --> T ,这时*为"2345"
                             (wcmatch  "12345" "*3*")  --> T ,这时*为"12"和"45"

能不能写一段来  得到这个 "*"的内容.

(defun wcmatch*  (string pattern) ( ..))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-3-15 14:42:16 | 显示全部楼层
(wcmatch* "123123123123" "*3*")
="12"  "123123123"
="12312" "123123"
="12312312" "123"
多解怎么办?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-15 17:00:33 | 显示全部楼层

只有通配式查找,而没有通配式替换

这是一个深奥的问题,就连微软的那些编程高手也没有解决的,
在word中只有通配式查找,而没有通配式替换功能.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-15 21:32:46 | 显示全部楼层
我个儿认为这是不可能的,因为通配符本身就表示任何多的任何有意义的字符,反过来将上面的“*”我可以随便用任意多个任意字符来表示,都是答案,正因为答案是无穷多的,所以上题无解。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-17 10:23:08 | 显示全部楼层
不知一楼搂主是为什么目的要得到wcmatch中通配符所代表的含义,我想cad和word中的通配函数是同一个(相同的程序代码),不知说的对不对,不知从哪里能得到这个程序的源代码(应该是c或c++写成的吧),若能得到代码,就能知道每一个*所代表的确切含义,我想(wcmatch* "123123123123" "*3*")中前一个*代表12,(实际上这个wcmatch函数并不难,花几个小时自己都可以写成,这样就可以确切的知道每一个通配符所代表的含义了).
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-17 21:28:36 | 显示全部楼层
4楼的说的对,有任意解
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-18 15:43:06 | 显示全部楼层
从一楼搂主定义wcmatch*函数的角度来看有些通配符有多解,如(wcmatch* "123123123123" "*3*")
应该有四解(另一解是("12312312123" ""))
但从wcmatch 程序的角度只会有一解,因为它的目标是判定true
or false,当找到一种匹配方案后,程序就会结束,并返回true,
这时候每一个通配符都是有一个对应的值(字符串)的,将字符串列表返回也不是什么难事,只是wcmatch没有这样做.所以我认为只要找到wcmatch程序原代码,看懂了,就知道了,甚至修改代码返回全部的通配解也是有可能的.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-18 18:31:35 | 显示全部楼层
我觉得前提是"123123123123" 这个字符串是否是已知的。
如果是已知的,那么就有解(先不管是1解还是多解,这个问题可以解决)
如果是未知的,那么就无解
从1楼的函数要求(defun wcmatch* (string pattern) ( ..)) 看,显然是有解的。
但是可以是多解,楼上关于T判定的理解很对,如果认为只要有一个符合,就结束程序,那么就是只有唯一解或nil。
如果要得出所有的可能(多解),可以列表("12" "12" "12" "12"),那么从这个角度也可以认为有唯一解。相对的 前面所说的“纯唯一解”是(“12" "123123123").
由此可见,是可以做到唯一解的。
不必非要得到wcmatch的原代码就可以求出。
必须再加以说明的是:用("12" "12" "12" "12")表表述唯一解的方式,是不可逆的,就是说由上表和pattern不可复原string. 因此表中要设置一个标识,以便能恢复string。如将标识设为nil (也可以是“*3*" 中的“3”)。
"123123123123"<->("12" nil  "12" nil  "12" nil "12" nil)  (因为表的中部肯定是nil,所有可以简化为:("12" "12"  "12" "12" nil)
"3123123123" <-> (nil "12" "12" "12" nil)
....
其实我觉得这个题目就是一个字符串分解的题目。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-3-18 18:34:28 | 显示全部楼层
最初由 陌生人 发布
[B]我觉得前提是"123123123123" 这个字符串是否是已知的。
如果是已知的,那么就有解(先不管是1解还是多解,这个问题可以解决)
如果是未知的,那么就无解
从1楼的函数要求(defun wcmatch* (string pattern) ( ..))... [/B]

只要比较就是已知,否则比较什么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-18 18:46:30 | 显示全部楼层
因此我说 “从1楼的函数要求(defun wcmatch* (string pattern) ( ..)) 看,显然是有解的。”
如果缺少string.那就是一个“*”解密的题目。如解rar密码,那就不是我的能力范畴了。哈
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-24 09:10 , Processed in 0.448657 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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