Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在正则表达式或python中匹配.log而不是.log*?_Python_Regex_String Matching - Fatal编程技术网

如何在正则表达式或python中匹配.log而不是.log*?

如何在正则表达式或python中匹配.log而不是.log*?,python,regex,string-matching,Python,Regex,String Matching,我在正则表达式方面有困难 我有: urls = re.findall(r'href=[\'"]?([^\'" >]+)', line) print urls 这给了我: ['production_r1499.log'] ['production_r1499.log-20140323'] ['production_r1499.log-20140323.gz'] 我只对.log文件感兴趣。如何使正则表达式仅与此正则表达式匹配 或者。 是否可以采用类似于此工作的方法 if str(urls)

我在正则表达式方面有困难

我有:

urls = re.findall(r'href=[\'"]?([^\'" >]+)', line)
print urls
这给了我:

['production_r1499.log']
['production_r1499.log-20140323']
['production_r1499.log-20140323.gz']
我只对.log文件感兴趣。如何使正则表达式仅与此正则表达式匹配

或者。 是否可以采用类似于此工作的方法

if str(urls).endswith('.log'):
非常高兴并感谢您的建议

试试这个

urls = re.findall(r'href=[\'"]?([^\'" >]+\.log)', line)

严格来说,这应该定位到href属性的末尾。如果您担心误报,可以在结束引号之前添加类似于
[\'”>]
的内容。

使用“向前看”来查看是否有任何
空格
在您的比赛中
.log
之后

urls = re.findall(r'href=[\'"]?([^\'" >]+\.log)(?=[\'"> ])', line)

line
变量的值是多少?它是html字符串吗?如果看不到输入,很难说看到输入字符串,但是您是否尝试过使用
$
,这是一个与字符串结尾匹配的锚点?
(?!['])[\w]+(日志)(?lookahead不会在匹配结束分隔符的基础上添加任何内容。@tripleee如果我不放置lookahead,则正则表达式将选择
x.log
以及
x.log.201
。但是OP只想选择
x.log
,而忽略在
.log
后面有文本的其他对象。log
是,但
A(b)(?:=c)
写得更好
a(b)如果你想要的只是捕获的表达式。使用前面的代码< C> > >代码>只是晦涩的。@ TrPielee得到了你的意思。是的,你是对的。LOL,现在我开始思考为什么我使用了前瞻性:-谢谢你的回复!这很管用,但是我也明白我可以不看前面。请考虑。谢谢。