下面的重新编码是什么意思?

2024-09-29 23:22:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我不懂Python中的代码。我知道函数的作用,但我不知道这些\\在替换字符串中是如何做的。在

import re
caps="([A-Z])"
pre="(Mr|mr|Mr|St|st|ST|Mrs|MRS|mrs|Ms|MS|ms|Dr|DR|dr|miss|Miss|MISS)[\.\.\.]"
def tokenize_sentence(text):
    text=re.sub(" ?"+pre,"\\1<dot>",text)
    text = re.sub(caps + "[.]" + caps + "[.]" + caps + "[.]", "\\1<prd>\\2<prd>\\3<prd>", text)
    print(text)
tokenize_sentence("Mr. Ansh sahajpal A.B.C.")

输出为:

^{pr2}$

如果你能解释一下\\1\\2和{}在sub函数中是如何工作的,那就太棒了。另外,我将输入改为Mr... Ansh sahajpal,在第5行中我做了以下更改:

text=re.sub(" ?"+pre,"\\1<dot>\\2<dot>",text)

我以为它会替换第一个.和第二个.,但它给了我一个错误。
请解释一下就行了。在


Tags: 函数字符串代码textimportrecapspre
1条回答
网友
1楼 · 发布于 2024-09-29 23:22:47

\1\2等引用正则表达式中匹配的子表达式(括在括号中)。\1是第一个匹配的表达式,\2是第二个表达式,以此类推。它们在替换字符串中用于标记匹配的子表达式要修改的位置。在

匹配子表达式的常见约定是使用括号。下面是一个例子:

str = 'an example word:cat!!'
print (re.sub (r'word:(\w+)', r'\0dog', str))

它表示匹配冒号后面的任意数量的字母数字字符,并生成:

^{pr2}$

在本例中,(\w+)是一组字母数字字符的分组表达式,包括“\u”。在

相关问题 更多 >

    热门问题