我正在尝试匹配可能包含空格的路径,因此输入引号:
\-inputfile\s*=\s*'?(.*?)(?=\/|\s|'|\||$)
我基本上想匹配以-inputfile =开头的字符串,后跟''之间的路径,如果找到/,|或空格或行尾,则停止匹配。
如果路径以'开头,我不确定如何指定帽子,然后允许空格,然后匹配应在下一个'处停止。
正则表达式示例为here。
如果我正确地从您的正则表达式示例中了解,您希望检测以下所有情况:
-inputFile=path/without/space
-inputFile='path with/space'
-inputFile='path/with/single/quotation
您可以使用:
\-inputfile=(('.*')|([^\s]*))
更多信息:]
('.*')
部分匹配单引号(')之间的所有字符,([^\s]*)
部分匹配除空格之外的所有字符。您需要在([^\s]*)
部分之前指定它以检测3.出现。
更多信息:
如果您不希望正则表达式与3.匹配(我正在编写它是因为要检测它是一件很奇怪的事情),您可以像这样简单地在排除的部分添加单引号:
\-inputfile=(('.*')|([^'\s]*))