0

この取り組みを使用して、Firefoxブックマーク(JSONエクスポートバージョン)を解析しようとしました:

cat boo.json | grep '\"uri\"\:\"^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}\"'
cat boo.json | grep '"uri"\:"^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}'
cat boo.json | grep '"uri"\:"^http\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}"'

他にもいくつかありますが、すべて失敗します。json ブックマーク ファイルは次のようになります。

.........."uri":"http://www.google.com/?"......"uri":"http://stackoverflow.com/"

したがって、出力は次のようになります。

"uri":"http://www.google.com/?"
"uri":"http://stackoverflow.com/"

正規表現に欠けている部分は何ですか?

アップデート:

次の特殊文字のいずれかで終わるブックマーク ファイルの URL:

/例: "uri":"http://stackoverflow.com/"

"例: "uri":"http://stackoverflow.com/questions/13148794/parsing-firefox-bookmarks-using-regular-expression"

}例: "uri":"https://fr.add-ons.mozilla.com/fr/firefox/bookmarks/"}

この修正された正規表現を使用すると、次のようになります。

$ egrep -o "(http|https)://([^ ]*).(*\/)"  boo.json

結果:

http://fr.fxfeeds.mozilla.com/fr/firefox/headlines.xml"},{"name":"livemark/siteURI","flags":0,"expires":4,"mimeType":null,"type":3,"value":"http://www.lemonde.fr/"}],"type":"text/x-moz-place-container","children":[]}]},{"index":2,"title":"Tags","id":4,"parent":1,"dateAdded":1344432674984000,"lastModified":1344432674984000,"type":"text/
http://stackoverflow.com/questions/13148794/parsing-firefox-bookmarks-using-regular-expression","charset":"UTF-8"},{"index":29,"title":"adrusi/
http://stackoverflow.com/
...

しかし、これでもまだURLしか取得できません。

4

3 に答える 3

0

JSON.sh を試しましたか? その作品は素晴らしいです!

https://github.com/dominictarr/JSON.sh

于 2012-10-30T22:59:57.973 に答える
-1

Jeff Atwood 氏は URL の問題に関する記事を投稿しました。彼が提案した正規表現を使用して、FireFox ブックマークからすべての URL を抽出することができました。

egrep -o "\(?\bhttp://[-A-Za-z0-9+&@#/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%=~_()|]"  my-bookmark.json
于 2012-12-08T02:25:28.590 に答える