我正在读一行,格式如下
.... .... [..*stuff*..].... ... .... .... [*stuff*] ... ... [*stuff*]
点...
和*stuff*
只是数字和文本
我试图只提取括号内文本/数字的第一个实例以及括号本身
所以。。。你知道吗
[..*stuff*..]
目前,我的代码是这样做的,但有时如果有一组以上的方括号,它会提取第一组方括号之后的所有内容。你知道吗
这意味着当我想要第一组括号中的所有内容时,它也会打印出字符串的其余部分
[*stuff*]...........[*sutff*].....[*stuff*]
当我只想要第一套支架和里面的一切。你知道吗
我使用的正则表达式是BracketedRegex = re.compile(r'\[.*\]')
。你知道吗
我的代码:
BracketedRegex = re.compile(r'\[.*\]')
f = open("logfile.log","r")
for line in f.readlines():
Bracket = re.search(BracketedRegex,line)
if Bracket:
print Bracket.group()
您需要使正则表达式不贪婪:
*?
量词将匹配满足模式的最少个字符,而*
将匹配最大个字符。你知道吗或者,可以匹配任何不是右括号的字符(而不是
.
元字符):其中
[^..]
负字符类匹配任何不是该类成员的字符,例如任何不是的]
字符。你知道吗相关问题 更多 >
编程相关推荐