gpt4 book ai didi

python - 无法在 python 中使用 "regex"和 "re"模块进行大小写转换

转载 作者:行者123 更新时间:2023-12-01 00:18:31 24 4
gpt4 key购买 nike

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>

关于python - 无法在 python 中使用 "regex"和 "re"模块进行大小写转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59123344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com