Python 正则表达式中遗漏了什么?

Python 正则表达式中遗漏了什么?,python,regex,Python,Regex,我想用这个正则表达式 art\..*[A-Z].*\s 在此处提取粗体文本的步骤 一些文字bla艺术。100条重要文字其他文字bla 基本上,我想提取所有遵循此模式的文本: *art.* *number* *whatever* *first word that starts in uppercase* 但它并没有像预期的那样工作。有什么建议吗?您可以匹配艺术。然后匹配到第一个数字,然后匹配到第一个大写字符 \bart\.\D*\d+[^A-Z]*[A-Z]\S* 模式匹配 \bart\。

我想用这个正则表达式

art\..*[A-Z].*\s
在此处提取粗体文本的步骤

一些文字bla艺术。100条重要文字其他文字bla

基本上,我想提取所有遵循此模式的文本:

*art.* *number* *whatever* *first word that starts in uppercase*

但它并没有像预期的那样工作。有什么建议吗?

您可以匹配
艺术。
然后匹配到第一个数字,然后匹配到第一个大写字符

\bart\.\D*\d+[^A-Z]*[A-Z]\S*
模式匹配

  • \bart\。
    匹配
    艺术。
    前面有单词边界
  • \D*\D+
    匹配非数字的0+倍,后跟1+个数字
  • [^A-Z]*
    匹配除A-Z以外的任何字符的0+倍
  • [A-Z]\S*
    匹配字符A-Z,后跟可选的非空白字符

如果单词必须以A-Z开头,则可以在匹配大写字符A-Z之前使用
(?)在左侧声明空白边界

\bart\.\D*\d+[^A-Z]*(?<!\S)[A-Z]\S*

\bart\.\D*\D+[^A-Z]*(?您可以匹配
art.
然后匹配到第一个数字,然后匹配到第一个大写字符

\bart\.\D*\d+[^A-Z]*[A-Z]\S*
模式匹配

  • \bart\。
    匹配
    艺术。
    前面有单词边界
  • \D*\D+
    匹配非数字的0+倍,后跟1+个数字
  • [^A-Z]*
    匹配除A-Z以外的任何字符的0+倍
  • [A-Z]\S*
    匹配字符A-Z,后跟可选的非空白字符

如果单词必须以A-Z开头,则可以在匹配大写字符A-Z之前使用
(?)在左侧声明空白边界

\bart\.\D*\d+[^A-Z]*(?<!\S)[A-Z]\S*

\bart\.\D*\D+[^A-Z]*(?对于显示的示例,请尝试以下内容

\bart\..*?\d+.*?[A-Z]\w*

说明:添加上述内容的详细说明

\b           ##mentioning word boundary here.
art\.        ##Looking for word art with a literal dot here.
.*?\d+       ##Using non-greedy approach for matching 1 or more digits.
.*?[A-Z]\w*  ##Using non-greedy approach to match 1 capital letter followed by word characters.

有了您展示的样品,请尝试以下内容

\bart\..*?\d+.*?[A-Z]\w*

说明:添加上述内容的详细说明

\b           ##mentioning word boundary here.
art\.        ##Looking for word art with a literal dot here.
.*?\d+       ##Using non-greedy approach for matching 1 or more digits.
.*?[A-Z]\w*  ##Using non-greedy approach to match 1 capital letter followed by word characters.

它可能是
r'\bart\.*?\b[A-Z]\S*.
r'\bart\.*?\b[A-Z]\w*.
“但它没有按预期工作。有什么建议吗?”-我的建议是告诉我们“没有按预期工作”是什么意思。你可以使用
\bart.\D*\D+[^A-Z]*[A-Z]\S+
它可能是
r'\bart.*?\b[A-Z]\S*'
r'\bart\.*?\b[A-Z]\w*'
“但它没有按预期工作。有什么建议吗?”-我的建议是告诉我们“没有按预期工作”是什么意思。您可以使用
\bart\.\D*\D+[^A-Z]*[A-Z]\S+
我建议在结尾使用
\S*
;否则,你的正则表达式将因
一些文本bla艺术而失败。100个这是重要的文本其他文本bla
。我建议在结尾使用
\S*
;否则,你的正则表达式将因
一些文本bla艺术而失败。100个这是重要的文本其他文本bla