2011-08-31 81 views
2

考慮以下字符串:正則表達式問題:名字捕獲,的preg_match

application/pdf; name=a.pdf 
application/pdf; name="b.pdf" 
application/pdf; name="c.pdf 
application/pdf; name=d.pdf" 

我需要在一個名爲「文件名」捕獲以下值:

a.pdf 
b.pdf 
c.pdf 
d.pdf 

下面的正則表達式作品a.pdf,但其餘由於雙引號失敗:

name=(?<filename>.*) 

任何建議如何我ca剩下的事情呢?謝謝。

回答

1

試試這個:

/name="?(?<filename>[^"]*)"?/ 
+0

注意,這將匹配'應用/ PDF格式; name = b.pdf「' - 即不平衡的引用,但它認爲沒關係 – Bohemian

+0

第四個例子就是這樣,所以我認爲匹配也會很有趣 – sidyll

+0

不起作用。它匹配:'a.pdf '和'application/pdf; name ='和'c.pdf'和'application/pdf; name = d.pdf' – StackOverflowNewbie