免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 16479 | 回复: 15
打印 上一主题 下一主题

正则匹配,忽略大小写,和空格,怎么匹配? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-29 12:58 |只看该作者 |正序浏览
本帖最后由 wqjwftcaqr 于 2010-03-29 15:10 编辑

怎么用 Chang Zheng Hospital Shanghai
去匹配 ChangzhengHospitalShanghai
>>> a='ab cdE'
>>> b='AB'
>>> import re
>>> m=re.match(b,a,re.I)
>>> if m:
        print 'right'
else:
        print 'wrong'

       
right
>>> ma='ed'
>>> m=re.match(ma,a,re.I)
>>> if m:
        print 'right'
else:
        print 'wrong'

       
wrong
现在还不会处理 不区分空格

Chang Zheng Hospital Shanghai只是一个例子。
关键要像,python里的, 正则的 命令,或者是正则里有这个功能吗

论坛徽章:
0
16 [报告]
发表于 2010-05-06 15:26 |只看该作者
回复 15# chinaunix874


    用正则,你想要什么语句,用中文写出来(伪代码),我来试试

论坛徽章:
0
15 [报告]
发表于 2010-05-06 10:48 |只看该作者
如果字符串中有TAB,这个方法就会有问题吧?
比如我比较两个字符串

  1. str1 = 'a        a'   #两个a之间是一个TAB
  2. str2 = 'a a'
复制代码
用compare比较结果是True,但是如果想让这种情况结果是Flase,怎么办?或者说,怎么判断字符串中有TAB?

论坛徽章:
0
14 [报告]
发表于 2010-03-31 14:10 |只看该作者
\t 會被去掉的

论坛徽章:
0
13 [报告]
发表于 2010-03-31 13:06 |只看该作者
不是喇...那個 compare 只是例子, 沒有那個模块......output:
>>> compare('AAAaaa kkk', 'AAAaaakkk')
T ...
eookoo 发表于 2010-03-30 23:04



    学习了,表达很具体,请问有\t的话是不是能被去掉?

论坛徽章:
0
12 [报告]
发表于 2010-03-30 23:04 |只看该作者
不是喇...那個 compare 只是例子, 沒有那個模块......

  1. def compare(str1, str2):
  2.     # example:
  3.     # 1) '  AAAaaa   kkk      '.strip() ---> 'AAAaaa kkk'
  4.     # 2) 'AAAaaa kkk'.split() ----> ['AAAaaa', 'kkk']
  5.     # 3) ''.join(2) ---> 'AAAaaakkk'
  6.     # 4) 'AAAaaakkk'.lower() ---> 'aaaaaakkk'
  7.     str1 = ''.join(str1.strip().split()).lower()   
  8.     str2 = ''.join(str1.strip().split()).lower()
  9.   
  10.     return str1 == str2
复制代码
output:
>>> compare('AAAaaa kkk', 'AAAaaakkk')
True
>>> compare('AAAaaa kkk', 'AAAaaak')
False
>>> compare('    hello World', 'HELLOWORLD')
True

论坛徽章:
0
11 [报告]
发表于 2010-03-30 17:08 |只看该作者
那它们一定要相等嗎? 還是其中一個有另一個的一部份也可以?

'Hello WORLD' compare 'helloworld' ---->  ...
eookoo 发表于 2010-03-30 16:19



除了空格和大小写可以不一样,其它需要都一样  
compare用的什么模块?好象可以在别的方面派上用场
'AAAaaa kkk' compare 'AAAaaakkK'
SyntaxError: invalid syntax
>>>

论坛徽章:
0
10 [报告]
发表于 2010-03-30 16:19 |只看该作者
那它们一定要相等嗎? 還是其中一個有另一個的一部份也可以?

'Hello WORLD' compare 'helloworld' ----> True
'Hello   ' compare  'Hello World'  ----> True or False ?

论坛徽章:
0
9 [报告]
发表于 2010-03-30 16:13 |只看该作者
一定要用 re ? 不用 re 好像快很容易解決 ( 我不會 re )
eookoo 发表于 2010-03-30 15:50



    恩,其实不一定,只要解决问题,这些字符串都是未知的,但我知道它们之间对比 存在着大小写和空格的差异问题,所以我认为正则比较好,当然用别的方法可以那也很好。(但是,我想删除空格再对比)

论坛徽章:
0
8 [报告]
发表于 2010-03-30 15:50 |只看该作者
一定要用 re ? 不用 re 好像快很容易解決 ( 我不會 re )
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP