1 件の投稿を表示中 (合計 3 個)
  • 作成者
    投稿
  • #31754
    Applek
    参加者

    いつもお世話になり、ありがとうございます。
    以下の不具合がありました。

    私は12月一日にご飯を食べました。

    まず上記のサンプル文で試してください。
    このマクロは日付の半角数字と漢数字を統一するという補正のマクロです。
    12月一日という変な表記を数字に統一したいのですが、マクロではドルマーク11と区別が付かずに12月の部分が消滅してしまいます。
    本来キャプチャーは一回しか行われていないので、一番目のキャプチャーとして解釈されないといけないのに11番目のキャプチャーという存在しないキャプチャーとして扱われるので存在しないために消滅するということのようです。
    これは仕様か不具合でしょうか?

    batch_list = editor.filters;
    //日数がおかしい。
    batch_list.AddReplace(“([0-9]月)一日”,”$11日”,eeFindReplaceRegExp | eeFindReplaceCase,0);
    batch_list.AddReplace(“([0-9]月)二日”,”$12日”,eeFindReplaceRegExp | eeFindReplaceCase,0);
    batch_list.AddReplace(“([0-9]月)三日”,”$13日”,eeFindReplaceRegExp | eeFindReplaceCase,0);
    batch_list.AddReplace(“([0-9]月)四日”,”$14日”,eeFindReplaceRegExp | eeFindReplaceCase,0);
    batch_list.AddReplace(“([0-9]月)五日”,”$15日”,eeFindReplaceRegExp | eeFindReplaceCase,0);
    batch_list.AddReplace(“([0-9]月)六日”,”$16日”,eeFindReplaceRegExp | eeFindReplaceCase,0);
    batch_list.AddReplace(“([0-9]月)七日”,”$17日”,eeFindReplaceRegExp | eeFindReplaceCase,0);
    batch_list.AddReplace(“([0-9]月)八日”,”$18日”,eeFindReplaceRegExp | eeFindReplaceCase,0);
    batch_list.AddReplace(“([0-9]月)九日”,”$19日”,eeFindReplaceRegExp | eeFindReplaceCase,0);
    batch_list.AddReplace(“([0-9]月)十日”,”$110日”,eeFindReplaceRegExp | eeFindReplaceCase,0);
    batch_list.AddReplace(“([0-9]月)二十日”,”$120日”,eeFindReplaceRegExp | eeFindReplaceCase,0);
    document.selection.BatchReplace(batch_list,eeReplaceAll,eeExFindRegexOnigmo);

    #31756
    Yutaka Emura
    キーマスター

    いつもお世話になっております。江村です。

    これは不具合ではなく、正規表現のそういう仕様になります。
    $1 ではなく \1 と表記してください。
    JavaScriptの引用符の中では、”\\1″ となります。

    よろしくお願いいたします。

    #31757
    Applek
    参加者

    回答ありがとうございます。
    わかりました。後ろが数値のときは\\1で書きます。
    ありがとうございます。

1 件の投稿を表示中 (合計 3 個)
  • このトピックに返信するにはログインしてください。