2015-05-28 2 views
-3

Я запрашиваю API-интерфейс wiktionary, и мне нужно сопоставить «=== Noun ===», включая текст после этого, вплоть до «==== Translations ====». Фактический объект JSON намного больше, и мне нужно совместить его несколько раз, в том числе «=== Verb ===» и т. Д. На Regexr.com мне удалось получить его, но не в моем javascript:RegEx не соответствует - Javascript

var regex = /(===Verb===|===Noun===|===Adjective===|===Adverb===).*?====/g; 
    console.log(jsondata.match(regex)); 
    console.log(regex.test(jsondata)); 

Любая помощь очень ценится!

==English== ===Pronunciation=== * , * , * * * * ===Noun=== # [[feces|Feces]]. ====Synonyms==== * [[BM]] * [[doo-doo]] * [[poo]] * [[poop]] ===Interjection=== # #* '''1995''', Phil Farrand, ''The Nitpicker's Guide for Next Generation Trekkers: Volume 2'' #*: (Ever feel like you've just entered... The Twilight Zone? '''Doo''', doo, doo, doo, doo, doo....) #* '''2006''', Steve Taylor, ''A to X of Alternative Music'' (page 272) #*: the bloke who sang about coloured girls going ''''doo''' de doo de doo doo d'de doo de doo de doo' had once had this thing with the guy who produced the debut albums by the Stooges and Patti Smith. ====Related terms==== * [[doo-wop]] ---- ==Gooniyandi== ===Noun=== # [[cave]] ---- ==Manx== ===Etymology=== From , from , from . ===Adjective=== # [[black]] # [[inky]] ====Synonyms==== * ====Derived terms==== * ===Noun=== # [[ink]] ====Derived terms==== ===Verb=== # to [[ink]] ===Mutation=== [[Category:gv:Colors]] ---- [[Category:Navajo terms with audio links]] ==Navajo== ===Pronunciation=== * ===Particle=== # Part of the [[negative]] correlative: #: '''''doo''' ... da'': #:: # With a nominalizer, forms a negative noun phrase: #: #: #: # Pairing '''doo''' with a verb + [[-góó]] forms a negative conditional: #: ====Derived terms==== ===Pronunciation=== * ===Verb=== # ''it will be'' (abbreviated form of [[dooleeł]]) # paired with [[ńtʼééʼ]], it forms a conditional: #: #: ====See also==== * * ---- ==Portuguese== ===Verb=== # # ---- ==Rohingya== ===Noun=== # [[knife]] ---- ==Scots== ===Etymology=== From (compare woman's [[given name]]); akin to Old High German , Icelandic , ''[[Dúfa]]'' "[[Dove]]" (woman's [[first name]]), Swedish , Danish and Norwegian . ===Pronunciation=== * ===Noun=== # [[dove]] (bird of the pigeon family, [[Columbidae]]) ====Derived terms==== * [[King of the Doos]] [[es:doo]] [[fr:doo]] [[lt:doo]] [[mg:doo]] [[pl:doo]] [[ru:doo]] [[fi:doo]] [[tr:doo]]

+0

точно, как это не работает? –

+0

вы могли бы хотя бы попытаться отформатировать вопрос о том, что люди не имеют головокружения, глядя на него. – Craicerjack

+0

Лучше использовать XML-парсер, см. Http://stackoverflow.com/q/7949752/1682509 – Reeno

ответ

0

Убедитесь, что ваш json правильно экранирован.

В моем примере, я избежал слова ōʹvə-flō', ō'və-flōʹ, ōʹvər-flō' и ō'vər-flōʹ к ōʹvə-flō\', ō\'və-flōʹ, ōʹvər-flō\' и ō\'vər-flōʹ, соответственно, работать:

var json = '<root><h level="2" i="1">==English==</h> <template lineStart="1"><title>wikipedia</title><part><name>dab</name>=<value>overflow</value></part><part><name>lang</name>=<value>en</value></part></template> <h level="3" i="2">===Etymology===</h> From <template><title>prefix</title><part><name index="1"/><value>over</value></part><part><name index="2"/><value>flow</value></part><part><name>lang</name>=<value>en</value></part></template>. Literally corresponds to <template><title>term</title><part><name index="1"/><value>superfluous</value></part><part><name>lang</name>=<value>en</value></part></template>, which is from Latin, rather than Germanic. <h level="3" i="3">===Pronunciation===</h> * <template><title>a</title><part><name index="1"/><value>RP</value></part></template> ** <template><title>sense</title><part><name index="1"/><value>noun</value></part></template> <template><title>enPR</title><part><name index="1"/><value>ōʹvə-flō\'</value></part></template>, <template><title>IPA</title><part><name index="1"/><value>/ˈəʊvəˌfləʊ/</value></part><part><name>lang</name>=<value>en</value></part></template> ** <template><title>sense</title><part><name index="1"/><value>verb</value></part></template> <template><title>enPR</title><part><name index="1"/><value>ō\'və-flōʹ</value></part></template>, <template><title>IPA</title><part><name index="1"/><value>/ˌəʊvəˈfləʊ/</value></part><part><name>lang</name>=<value>en</value></part></template> * <template><title>a</title><part><name index="1"/><value>GenAm</value></part></template> ** <template><title>sense</title><part><name index="1"/><value>noun</value></part></template> <template><title>enPR</title><part><name index="1"/><value>ōʹvər-flō\'</value></part></template>, <template><title>IPA</title><part><name index="1"/><value>/ˈoʊvɚˌfloʊ/</value></part><part><name>lang</name>=<value>en</value></part></template> ** <template><title>sense</title><part><name index="1"/><value>verb</value></part></template> <template><title>enPR</title><part><name index="1"/><value>ō\'vər-flōʹ</value></part></template>, <template><title>IPA</title><part><name index="1"/><value>/ˌoʊvɚˈfloʊ/</value></part><part><name>lang</name>=<value>en</value></part></template> * <template><title>rhymes</title><part><name index="1"/><value>əʊ</value></part><part><name>lang</name>=<value>en</value></part></template> <h level="3" i="4">===Noun===</h> <template lineStart="1"><title>en-noun</title></template> # The [[spillage]] resultant from overflow; [[excess]]. # [[outlet|Outlet]] for escape of excess material. # <template><title>context</title><part><name index="1"/><value>computing</value></part><part><name>lang</name>=<value>en</value></part></template> The situation where a value exceeds the available [[numeric]] [[range]]. <h level="4" i="5">====Translations====</h> <template lineStart="1"><title>trans-top</title><part><name index="1"/><value>spillage</value>'; 
 

 
var regex = new RegExp(/(===Verb===|===Noun===|===Adjective===|===Adverb===).*?====/g); 
 

 
document.write(json.match(regex));

+1

Спасибо большое, что сработало! – Lukars

0

Это, кажется, работает в этой скрипке для регулярных выражений

var regex = /(===Verb===|===Noun===|===Adjective===|===Adverb===).*?====/g; 

https://jsfiddle.net/2n3756aw/1/

Смежные вопросы