小编Mik*_*ike的帖子

Python条件正则表达式

这是一个涉及python中条件正则表达式的问题:

我想把字符串"abc"与.匹配

match(1)="a"
match(2)="b"
match(3)="c"
Run Code Online (Sandbox Code Playgroud)

但也匹配字符串" a"

match(1)="a"
match(2)=""
match(3)=""
Run Code Online (Sandbox Code Playgroud)

以下代码ALMOST执行此操作,问题是在第一种情况下,match(1)="a" 但在第二种情况下,match(4)="a"(不是match(1)所需的).

事实上,如果你遍历所有组for g in re.search(myre,teststring2).groups():,你得到6组(不是预期的3组).

import re
import sys

teststring1 = "abc"
teststring2 = "  a"

myre = '^(?=(\w)(\w)(\w))|(?=\s{2}(\w)()())'

if re.search(myre,teststring1):
    print re.search(myre,teststring1).group(1)

if re.search(myre,teststring2):
   print re.search(myre,teststring2).group(1)
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?(注意这是Python 2.5)

python regex

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×1

regex ×1