Python正则表达式:检测包含特定单词的模式?

Python正则表达式:检测包含特定单词的模式?,python,regex,Python,Regex,句子:“[cnn新闻,克里斯]Stackoverflow真棒” 我想用正则表达式检测的是[cnn新闻,Chris]部分 我尝试的:re.search(r“[cnn新闻,\w+]”,句子)但它只检测到c(第一个字母) 我的表达式出了什么问题?所以–是构建和调试正则表达式的绝佳工具 在本例中,您可能希望使用捕获组获取字符串开头方括号内的文本。我能想到的最好的方法是这样:^\[(.*)\] Regex101对此的解释比我在以下链接中的解释更好: 这个正则表达式基本上是在输入文本的开头寻找一个[,然后捕

句子:
“[cnn新闻,克里斯]Stackoverflow真棒”

我想用正则表达式检测的是
[cnn新闻,Chris]
部分

我尝试的:
re.search(r“[cnn新闻,\w+]”,句子)
但它只检测到
c
(第一个字母)

我的表达式出了什么问题?

所以–是构建和调试正则表达式的绝佳工具

在本例中,您可能希望使用捕获组获取字符串开头方括号内的文本。我能想到的最好的方法是这样:
^\[(.*)\]

Regex101对此的解释比我在以下链接中的解释更好:


这个正则表达式基本上是在输入文本的开头寻找一个
[
,然后捕获该
[
之后的所有内容,直到它找到一个
]
听起来除了搜索它之外,您还想提取括号内的内容。我们可以使用模式
\[([^\]+])\]
带有捕获组:

sentence = "[cnn news, Chris] Stackoverflow is awesome"
result = re.search("\[([^\]]+)\]", sentence)

if result:
    print "Found a match: ", result.group(1)

您正在尝试在一个只匹配多个字符中的一个字符的模式中使用您的模式

如果你想匹配
[cnn新闻,克里斯]
,你必须避开
\[
开头的方括号:


要匹配方括号内的模式,
[]
cnn新闻开始,
您可以使用正向查找
(?尝试
\[cnn新闻,\w+]
您可以尝试此
\[[^”]*\]
import re
sentence = "[cnn news, Chris] Stackoverflow is awesome";
result = re.search(r"(?<=\[)cnn news, \w+(?=\])", sentence)

if result:
    print result.group()