Regex 正则表达式问题:名称捕获、预匹配
给定以下字符串:Regex 正则表达式问题:名称捕获、预匹配,regex,preg-match,Regex,Preg Match,给定以下字符串: application/pdf; name=a.pdf application/pdf; name="b.pdf" application/pdf; name="c.pdf application/pdf; name=d.pdf" 在名为“filename”的捕获中,我需要以下值: 以下正则表达式适用于a.pdf,但由于双引号,其余正则表达式均失败: name=(?<filename>.*) name=(?*) 有什么建议可以让我得到剩下的吗?谢谢。试试这个:
application/pdf; name=a.pdf
application/pdf; name="b.pdf"
application/pdf; name="c.pdf
application/pdf; name=d.pdf"
在名为“filename”的捕获中,我需要以下值:
以下正则表达式适用于a.pdf
,但由于双引号,其余正则表达式均失败:
name=(?<filename>.*)
name=(?*)
有什么建议可以让我得到剩下的吗?谢谢。试试这个:
/name="?(?<filename>[^"]*)"?/
/name=“?(?[^”]*)”/
注意,这将匹配application/pdf;name=b.pdf”
-即不平衡引用,但它认为这是正确的。第四个示例就是这样的,所以我认为匹配也是有趣的,但它也不起作用。它匹配:a.pdf
和application/pdf;name=
和c.pdf
和application/pdf;name=d.pdf
@StackOverflowNewbie:您是否传递任何标志以忽略换行符?我不确定PHP正则表达式是如何工作的。尝试附加一个$
。
/name="?(?<filename>[^"]*)"?/