README
WZ EDITORの用語統一辞書のパーサーです。
WEB+DB PRESS用語統一ルールをパースできることを目的としています。
\1\2ほう\3([^使])([いくすたつのる])方([ぁ-んァ-ヶ]),,RE<★い方が★☆使い方☆>
のような行ごとの辞書をJSONに変換します。
調査レポート
辞書の形式の仕様は公開されてないので、実行結果から推測して正規表現に落としています。
Installation
npm install wzeditor-word-rules-parser
Usage
Module
wzeditor-rules-parser
をテキストコンテンツを渡す事でパースした結果を返してくれる。
var parser = require("wzeditor-rules-parser");
var content = fs.readFileSync(__dirname + "/../dictionary/WEB+DB PRESS用語統一ルール", "utf-8");
var result = parser.parse(content);
/*
[ { pattern: 'クッキー|\\bCOOKIE\\b|\\bcookie\\b',
expected: 'Cookie' },
{ pattern: 'Web Socket', expected: 'WebSocket' },
{ pattern: '(?:([^/])ウェブ)|(?:ウェブ([^/\\+]))',
expected: '$1Web$2' },
{ pattern: '(?:([^/])\\bWEB)|(?:WEB\\b([^/\\+]))',
expected: '$1Web$2' },
{ pattern: '(?:([^/])ウェッブ)|(?:ウェッブ([^/\\+]))',
expected: '$1Web$2' },
{ pattern: '\\bEmacs\\b', flag: 'i', expected: 'Emacs' },
{ pattern: 'Emacs([0-9])', expected: 'Emacs $1' },
{ pattern: '\\bEmacs Lisp\\b',
flag: 'i',
expected: 'Emacs Lisp' }
]
*/
それぞれのオブジェクトは以下のような意味を持つ
pattern
{String} : マッチする文字列flag
{String} : マッチする文字列の正規表現で指定するフラグexpected
{String} : マッチする文字列に対応している置換する文字列(正規表現のプレースホルダを含む)
{
"pattern" : "string",
"flag" : "string | null",
"expected": "string"
}
つまり、JavaScriptでは以下のようにすることで置換が可能になる。
var matchWord = new Regexp(pattern, flag);
"置換対象の文字列".replace(matchWord, expected);
CLI
wzeditor-word-rules-parser "dictionary/WEB+DB PRESS用語統一ルール"
とすることでパースしたJSONを返す事も出来ます。
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
License
MIT