Python中具有相同正则表达式的不同结果

时间:2018-08-14 14:01:49

标签: python regex

我只是学习Python和常规的“语言”。但是我只是遇到了我无法回答的问题。一些帮助或建议会有所帮助。

import re
m = " text1 \abs{foo} text2 text3 \L{E.F} text4 "


def separate_mycmd(cmd,m):
    math_cmd = re.compile(cmd)
    math = math_cmd.findall(m)
    text = math_cmd.split(m)
    return(math,text)

(math,text) = separate_mycmd(r'\abs',m)

print math  # ['\x07bs']
print text  # [' text1 ', '{foo} text2 text3 \\L{E.F} text4 ']

(math,text) = separate_mycmd(r'\L',m)

print math  # **Question:** Just ['L'] and not ['\\L'] or ['\L]
print text  # [' text1 \x07bs{foo} text2 text3 \\', '{E.F} text4 ']
            # **Question:** why the \\ after text3 ?

我不理解上次通话的输出。我的相关问题在评论中。

预先感谢,     乌尔里希

1 个答案:

答案 0 :(得分:0)

您想匹配"\\L",而不是\L,从而给您:

> (math,text) = separate_mycmd(r'\\L',m)

> print math
['\\L']

> print text
[' text1 \x07bs{foo} text2 text3 ', '{E.F} text4 ']

您可能还想使用\\a。而且您可能还想在搜索的字符串中使用它,从而得到:

m = " text1 \\abs{foo} text2 text3 \\L{E.F} text4 "