数字と一致する正規表現を作成しようとしていますが、特定のhtmlタグ内の他の単語や数字の一部である数字は除きます。番号を一致させるための部分はうまくいきますが、html内の数字を見つける方法を理解できません。HTMLフラグメントの数字とユニットを一致させるための正規表現ですか?
現在のコード:
//number regexp part
var prefix = '\\b()';//for future use
var baseNumber = '((\\+|-)?([\\d,]+)(?:(\\.)(\\d+))?)';
var SIBaseUnit = 'm|kg|s|A|K|mol|cd';
var SIPrefix = 'Y|Z|E|P|T|G|M|k|h|ia|d|c|m|µ|n|p|f|a|z|y';
var SIUnit = '(?:('+SIPrefix+')?('+SIBaseUnit+'))';
var generalSuffix = '(PM|AM|pm|am|in|ft)';
var suffix = '('+SIUnit+'|'+generalSuffix+')?\\b';
var number = '(' + prefix + baseNumber + suffix + ')';
//trying to make it match only when not within tags or inside excluded tags
var htmlBlackList = 'script|style|head'
var htmlStartTag = '<[^(' + htmlBlackList + ')]\\b[^>]*?>';
var reDecimal = new RegExp(htmlStartTag + '[^<]*?' + number + '[^>]*?<');
私は目の前にそれを行う上で計画していましたe htmlはFirefoxのプラグインの中でレンダリングされていました。それで、なぜ完全なhtmlファイルにアクセスできなかったのですか?たぶん私はそれが思っているほど難しいと思えば、私は事を再考すべきでしょう。 – Annan
私はhtmlからdomノードを作成し、数字を見つけてそれらを処理し、domをhtmlに戻してから戻すことができます。私はレンダリングされていない場合、どのように多くの文字列をdomとbackコストに変換するのだろうか。たとえ私が正規表現を使うことができたとしても、おそらく効率的ではないでしょう。 – Annan
どれくらいの時間がかかるか分かりません。ベンチマークすることをお勧めします。 – derobert