gpt4 book ai didi

python - 为什么我的代码在提取字符串时无法在 Python Regex 中运行

转载 作者:太空宇宙 更新时间:2023-11-04 09:23:55 26 4
gpt4 key购买 nike

试图从字符串中提取字符串和数字,但没有按预期进行

s = '''
text1
text2
http://url.com/bla1/blah1/text22
text3
'''
import re
re.findall(r'(^http.*|text\d+)',s)

My Out,以为是^http不会考虑行

['text1', 'text2', 'text22', 'text3']

预期

['text1', 'text2', 'text3']

免责声明请不要做 're.sub(r'http\S+', '', s)'

最佳答案

我怀疑你试图在行内的任何地方找到所有 text\d+,除了以 http 开头的行(否则我想不出背后的原因那个额外的 http 检查你是否只想要 text 在行的开头)

如果是这样,您可以使用:^(?!http).*(text\d+)。第一个捕获组是你需要的

Python 的re.findAll 返回捕获组的内容:

s = '''
text1
text2
http://url.com/bla1/blah1/text22
text3
xyz text4
text555
'''
re.findall(r'^(?!http).*(text\d+)', s, flags=re.MULTILINE)
# ['text1', 'text2', 'text3', 'text4', 'text555']

关于python - 为什么我的代码在提取字符串时无法在 Python Regex 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58705504/

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