Python 以下代码是什么意思?
我不理解Python中的这段代码。我知道函数的作用,但我不知道替换字符串中的Python 以下代码是什么意思?,python,regex,replace,Python,Regex,Replace,我不理解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(cap
\\\
是如何作用的
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.")
我原以为它会替换第一个
和第二个
,但它给了我一个错误。请解释。该
\1
、\2
等引用正则表达式中匹配的子表达式(括在括号中)\1
是匹配的第一个表达式,\2
是第二个表达式,以此类推。它们在替换字符串中用于标记要修改匹配子表达式的位置
匹配子表达式的常见约定是使用括号。以下是一个例子:
str = 'an example word:cat!!'
print (re.sub (r'word:(\w+)', r'\0dog', str))
表示匹配冒号后面的任意数量的字母数字字符,并生成:
an example word:dog!!
在本例中,(\w+)是一组字母数字字符的分组表达式,包括“u”。您的问题已脱离主题,因为您正在寻求调试帮助。如果逐行运行调试器,则可以理解代码的功能。顺便说一句,
\1
或\someNumber
是正则表达式捕获组索引,因此如果您的正则表达式捕获了hello
,那么如果您使用\1
您是在引用hello,那么\1\1
将是hellohello
请注意,在所有语言中,Python对缩进非常敏感。您编写的不会编译,因为您没有缩进函数体。我已经猜到了函数的范围。下次请非常小心。此外,当您报告“it给了我一个错误”时,请逐字引用您收到的错误消息。我想它说的是没有第二个捕获的字符串供\\2
参考-但我们不应该猜测;你应该从一开始就告诉我们。
str = 'an example word:cat!!'
print (re.sub (r'word:(\w+)', r'\0dog', str))
an example word:dog!!