This question already has answers here:
Making letters uppercase using re.sub in python?
(5个答案)
3个月前关闭。
在上面的代码中,我正在尝试使用“ regex”模块(实际上也使用“ re”模块)来实现大小写转换操作,而我想要做的就是例如将HTML编写的注释之间的所有文本都转换为大写。
似乎它不知道
我当前使用的是python 3.7,并且也尝试过使用“ re”模块,但是它不起作用。
我想知道,这是什么问题?,我看过很多用于使用正则表达式进行大小写转换的书籍。但事实是“为什么不应该这样做?”对我来说一直是个谜。
问题是来自语法,还是源自正则表达式本身的python实现,不支持这种转换大小写的操作?
在这个问题中,我试图使用
这使用的是
这给
(5个答案)
3个月前关闭。
import regex
st = """
<!-- Start of page -->
<HTML>
<!-- Start of head -->
<HEAD>
<TITLE>My Title</TITLE> <!-- Page title -->
</HEAD>
<!-- Body -->
<BODY>
"""
pat = regex.compile(r"<!-{2,}(.*?)-{2,}>")
st2 = pat.sub(r'\U\1\E', st)
print(st2)
在上面的代码中,我正在尝试使用“ regex”模块(实际上也使用“ re”模块)来实现大小写转换操作,而我想要做的就是例如将HTML编写的注释之间的所有文本都转换为大写。
<!-- Start of page -->
到<!-- START OF PAGE -->
,但是当我尝试这样做时,使用此语法正确的代码,应该可以使用它给了我这个错误。Traceback (most recent call last):
File "C:/Users/m.m/PycharmProjects/untitled9/source.py", line 13, in <module>
st2 = pat.sub(r'\U\1\E', st)
File "C:\Users\m.m\.virtualenvs\untitled5\lib\site-packages\regex\regex.py", line 676, in
_compile_replacement_helper
is_group, items = _compile_replacement(source, pattern, is_unicode)
File "C:\Users\m.m\.virtualenvs\untitled5\lib\site-packages\regex\_regex_core.py", line 1696, in
_compile_replacement
return False, [parse_repl_hex_escape(source, HEX_ESCAPES[ch], ch)]
File "C:\Users\m.m\.virtualenvs\untitled5\lib\site-packages\regex\_regex_core.py", line 1764, in
parse_repl_hex_escape
source.string, source.pos)
regex._regex_core.error: incomplete escape \U at position 3
似乎它不知道
\U
和\L
的目的是什么,并给出“不完全的转义错误”我当前使用的是python 3.7,并且也尝试过使用“ re”模块,但是它不起作用。
我想知道,这是什么问题?,我看过很多用于使用正则表达式进行大小写转换的书籍。但事实是“为什么不应该这样做?”对我来说一直是个谜。
问题是来自语法,还是源自正则表达式本身的python实现,不支持这种转换大小写的操作?
在这个问题中,我试图使用
\E
等转换文本,或者正式地“在正则表达式中使用CaseConversion” 最佳答案
print(re.sub(r"<!-{2,}(.*?)-{2,}>",lambda x:"<!--"+x.group(1).upper()+"-->",st))
这使用的是
re
模块,sub
可以将第二个参数作为字符串或可调用对象,如果它是可调用对象,则每次匹配都作为可调用对象的参数发送给您时,则可以使用该对象进行常规操作。这给
<!--START OF PAGE-->
<HTML>
<!--START OF HEAD-->
<HEAD>
<TITLE>My Title</TITLE> <!--PAGE TITLE-->
</HEAD>
<!--BODY-->
<BODY>