2017-04-21 57 views
-3

字符串的屬性:我需要一個正則表達式匹配以下字符串

{title id="fsfdsfsdf" link1="http://google.com" link1_title="Some link"} 

什麼屬性值,我需要:

fsfdsfsdf, http://google.com, Some link 

我需要他們可能是在捕獲組()

正則表達式實際上是我的弱點,所以感謝任何人提出了一個方法來做到這一點,或者一些進一步的資源,最終可以幫助我解決這個問題。

+3

請分享你嘗試過的代碼。 –

+0

...和一些正確的數據。這是一個字符串? –

+0

由於本網站的格式,您可能最好的服務方式是通過在線RegEx教程以及StackOverflow上的[RegEx文檔](http://stackoverflow.com/documentation/regex/topics)閱讀此處 –

回答

0

你可以做這樣的事情:

(\w+)(?==) 

Live Demo

編輯

因爲它的屬性值,而不是你想要的鍵。然後,你可以這樣做:

="((?:\\"|[^"])*?)" 

Live Demo

var input = "{title id=\"fsfdsfsdf\" link1=\"http://google.com\" link1_title=\"Some link\"}"; 
 

 
const re = /="((?:\\"|[^"])*?)"/g; 
 

 
match = re.exec(input); 
 

 
while (match != null) { 
 
    console.log(match[1]); 
 
    match = re.exec(input); 
 
}

,輸出:

fsfdsfsdf 
http://google.com 
Some link 
+0

謝謝非常多的答案。不幸的是,也許我的問題還不夠清楚,我需要屬性「值」而不是屬性名稱本身。任何想法? – Zota

+0

@Zota看看我的編輯。 – Vallentin

+0

這真是一個很好的起點,可以構建我自己的100%工作正則表達式: '^ \ {title id =「((?:\\」| [^「])*?)」\ slink1 =「((? :\\「| [^」])*?)「\ slink1_title =」((?:\\「| [^」])*?)「[\ s^\}] $'。我需要匹配整個字符串,然後有attr。值 – Zota