求助:关于字符串的正则匹配,各位帮帮忙,实在想不出来
采用正则表达式来实现字符串匹配功能。一种简单的正则表达式是由英文字母(区分大小写)、数字及通配符“*”和“?”任意组合而成的。“?”代表任意一个字符,“*”代表零个或任意多个字符。例如,a*b可以匹配acb,aabb,afdfdb,ab等,但不可以匹配ac,bb,abbc;a?b可以匹配acb,abb,但不可以匹配ab,accb。试编写一个程序,从文件中读入N个字符串,再从键盘上读入任意一个合乎规则的正则表达式,例如:“a?bb*d”,输出符合正则表达式的字符串。要考虑的情况太多了,我遇到的问题是如果*可以代替任意0个或多个字符,那么我的程序只能找到表达式中*后面的字符串在需要匹配的字符串中第一次出现的位置,可有些时候这么寻找是不正确的
如 a*bc 按题的要求可以匹配 aefefbcefbc,但我的程序只能找到 bc第一次出现的位置,由于后面的不匹配,就被判定为不匹配了。哪位有好一点的算法解决这个问题,谢谢了!