我是gaurav,我正在学习编程。我正在阅读python3中的正则表达式,所以我想尝试一下,所以我在eclipse中编写了这段代码,但是我得到了很多错误.can谁来帮帮我
import re
def add_shtner(add):
return re.sub(r"\bROAD\b","RD",add)
print(add_shtner("100,BROAD ROAD"))
# a code to check valid roman no.
ptn=r"^(M{0,3})(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3}$)"
def romancheck(num):
num=num.upper()
if re.search(ptn,num):
return "VALID"
else:
return "INVALID"
print(romancheck("MMMLXXVIII"))
print(romancheck("MMMLxvviii"))
mul_line_str='''adding third argument
re.VERBOSE in re.search()
will ignore whitespace
and comments'''
print(re.search("re.search()will",mul_line_str,re.VERBOSE))
print(re.search("re.search() will",mul_line_str,re.VERBOSE))
print(re.search("ignore",mul_line_str,re.VERBOSE))
ptn='''
^ #beginning of the string
M{0,3} #thousands-0 to 3 M's
(CM|CD|D?C{0,3} #hundreds
(XC|XL|L?XXX) #tens
(IX|IV|V?III) #ones
$ #end of the string
'''
print(re.search(ptn,"MMMCDLXXIX",re.VERBOSE))
def romanCheck(num):
num=num.upper()
if re.search(ptn,num,re.VERBOSE):
return "VALID"
else:
return "INVALID"
print(romanCheck("mmCLXXXIV"))
print(romanCheck("MMMCCLXXXiv"))
我写了这个代码,我运行了它,但是我得到了这个-
^{pr2}$这些错误是什么?谁能帮我。 我已经理解了所有的输出,但是我不能理解这些错误
该错误意味着您向第46行中的
search()
函数传递了一个格式错误的正则表达式。在尽管您已在此行中定义了有效的RegEx:
稍后,您可以使用一些帮助/docstring覆盖此模式(ptn):
^{pr2}$这不是有效的RegEx模式,它在
(CM|CD|D?C{0,3}
后缺少右括号。 将这个新字符串作为正则表达式传递到下一行print(re.search(ptn,"MMMCDLXXIX",re.VERBOSE))
,然后re.compile()
抛出该错误。在如果变量使用另一个名称来保存第27行中的help/docstring(基于示例代码或第38行,基于stacktrace),则一切看起来都很好:
相关问题 更多 >
编程相关推荐