sentence = "[cnn news, Chris] Stackoverflow is awesome"
result = re.search("\[([^\]]+)\]", sentence)
if result:
print "Found a match: ", result.group(1)
import re
sentence = "[cnn news, Chris] Stackoverflow is awesome";
result = re.search(r"(?<=\[)cnn news, \w+(?=\])", sentence)
if result:
print result.group()
因此Regex101是构建和调试正则表达式的极好工具
在本例中,您可能希望使用捕获组来获取字符串开头方括号内的文本。我能想到的最好办法是这样:
^\[(.*)\]
Regex101对此的解释比我在以下链接中所能做的更好:https://regex101.com/r/LfrbL2/1/
这个正则表达式基本上在输入文本的开始处寻找
[
,然后捕获该[
之后的所有内容,直到找到]
听起来除了搜索外,还想提取括号内的内容。我们可以对捕获组使用模式
\[([^\]]+)\]
:Demo
您正在尝试在character class中使用您的模式^{} ,它将只匹配几个字符中的一个
如果要匹配
[cnn news, Chris]
,则必须将\[
转义为开头的方括号:^{}
Demo
为了匹配方括号内的模式
[]
从cnn news,
开始,您可以使用一个正向的lookback(?<=
来断言左边的是[
然后匹配您的模式
cnn news, \w+
,并在最后使用正向前瞻(?=\])
来断言右边的是]
:^{}
这将给你:
Demo
相关问题 更多 >
编程相关推荐