将正则表达式从字符匹配到行尾,但忽略最后一个字符

时间:2016-07-14 12:31:34

标签: regex

正则表达式

(file\..*$)

匹配" file.xml"正确地在

$cd = "..\folder\file.xml"

但是如果可能的话,我想通过正则表达式忽略尾随引用

3 个答案:

答案 0 :(得分:1)

您可以说:不是"

(file\.[^"]*)"$

请参阅a demo on regex101.com

<小时/> 在您的示例中,您do not even need the anchors

(file\.[^"]*)

答案 1 :(得分:1)

您可以将正则表达式更新为以下内容:

(file\..*?)"?$

确保如果有跟踪报价则不会被捕获。

答案 2 :(得分:0)

将最后一个字符与结束标记一起移出组:

(file\..*).$

https://regex101.com/r/bZ7vV5/1

或者,如果您可能有一个非引用的最后一个字符,而是要明确指定此引号但是作为可选("?)并使前一个匹配非贪婪({{1} }):

.*?

https://regex101.com/r/bZ7vV5/3