用python从正则表达式中提取

2024-04-27 05:04:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个正则表达式来查找?并捕获之前的所有内容。这是我目前掌握的情况。你知道吗

f = 'file.doc?gs_f'
f1 = re.search(r'(\?)',f)
print(f[:f1.start()]) #prints "file.doc"

如何使用regex捕获?之前的所有内容。这是一种叫做“向后看”的东西,但我不知道如何使用它。你知道吗


Tags: regs内容searchdoc情况printsstart
3条回答

你不需要回头看。你知道吗

f = 'file.doc?gs_f'
re.search(r'([\w\.]*(?=\?))',f).group(0)

这里有个好地方Regex lookahead, lookbehind and atomic groups

这将起作用:

^[^\?]+

使用findall:

f = 'file.doc?gs_f'
f1 = re.findall("^[^\?]+",f)

您可以看到下面的正则表达式对任何类型的字符串都有效: Regex_Working

多种可能性:

  1. 或者一切都不是问号:[^?]+
  2. 或者一个带有捕获组的惰性量词:(.+?)\?
  3. 或者正面展望:.+?(?=\?)

请参阅regex101.com123)上相应的演示。你知道吗

相关问题 更多 >