乱用正则表达式python

时间:2015-10-05 19:58:40

标签: python regex

我正在尝试下一个代码,但似乎我做错了。

import re

lista = ["\\hola\\01\\02Jan\\05\\03",
"\\hola\\01\\02Dem\\12",
"\\hola\\01\\02March\\12\\04"]

for l in lista:
    m= re.search("\\\\\d{2,2}\\\\\d{2,2}[a-zA-Z]+\\\\\d{2,2}\s",l)
    if m:
        print (m.group(0))

结果应该是第二个字符串。 我试过没有\s,但结果与所有字符串匹配。

2 个答案:

答案 0 :(得分:2)

你可以试试这个正则表达式:

lista = [r"\hola\01\02Jan\05\03", r"\hola\01\02Dem\12", r"\hola\01\02March\12\04"]

>>> for l in lista:
...     m = re.search(r"\\\d{2,2}\\\d{2,2}[a-zA-Z]+\\\d{2}$", l)
...     if m:
...             print m.group()
...

<强>输出:

\01\02Dem\12
  • 使用r"..."表单声明正则表达式并输入为原始字符串
  • 使用锚$以避免匹配不需要的输入

答案 1 :(得分:0)

您可以使用以下代码而无需正则表达式:

 $arraysum = array_column($yourarray,'52');
 array_sum($arraysum);