2024-04-29 19:59:16 发布
网友
有人能帮我做这种正则表达式匹配吗
例如,我正在搜索包含不同字符串的列表,字符串末尾有一个字母循环:
我需要这个脚本返回的只是字符串的前一部分,在这个例子中是Monster和Hero
您可以使用正向先行断言(?=...)来检查单词以单个大写字符结尾,然后使用单词boudaries\b...\b来确保它与不是整个单词的模式不匹配:
(?=...)
\b...\b
>>> text = "This re will match MonsterA and HeroB but not heroC or MonsterCC" >>> re.findall(r"\b[A-Z][a-z]+(?=[A-Z]\b)", text) ['Monster', 'Hero']
re.findall返回列表中的所有匹配项
re.findall
如果您确实需要正则表达式:
re.match(r"(.*)[A-Z]", word).group(1)
但是,如果您只想删除最后一个字符,这并不是最有效的
您可以使用正向先行断言
(?=...)
来检查单词以单个大写字符结尾,然后使用单词boudaries\b...\b
来确保它与不是整个单词的模式不匹配:re.findall
返回列表中的所有匹配项如果您确实需要正则表达式:
但是,如果您只想删除最后一个字符,这并不是最有效的
相关问题 更多 >
编程相关推荐