web-dev-qa-db-ja.com

正規表現をテキストパッドに置き換える

テキストパッドにある大きなファイルの日付形式を更新する必要があります。

日付形式は現在mm-dd-yyyyであり、mm/dd/yyyyにする必要があります

日付のある各行はDで始まります。

このように:D02-12-2009

正規表現検索部分が正常に機能しています^ D(.?)-(。?)-(。*?)?ですが、値Dに$ 1 $ 2 $ 3を使用しようとすると置換が失敗します$ 1/$ 2/$ 3。リテラルの$ 1、$ 2、および$ 3に置き換えられます。 POSIX正規表現を使用するようにテキストパッドを設定しました。

値を取得して置換部分に配置する方法について何かアイデアはありますか?

5
Kyle

_\1 \2 \3_の代わりに_$1 $2 $3_を使用してください

何を見つける:D([0-9]+)-([0-9]+)-([0-9]+)

置換:_D\1/\2/\3_

_D02-12-2009
D03-12-2009
D04-12-2009
_

_D02/12/2009
D03/12/2009
D04/12/2009
_

グループ化について

タグ付き式をグループ化して、置換式で使用します。 REには、RE内の順序に従って番号が付けられた、最大9つのタグ付き式を含めることができます。対応する置換式は\ xで、xの範囲は1〜9です。例:([a-z] +)([a-z] +)が「間違った方法」と一致する場合、\ 2\1はそれを「間違った方法」に置き換えます。

PS:なぜこれがここに移されたのか分かりません。初めてここに来なければなりませんでした。 :-)

8
YOU

"日付のある各行はDで始まります。"安全性を高めるために、検索式に "^"を追加します。 : **^**D([0-9]+)-([0-9]+)-([0-9]+)
文字列が他の場所で発生する可能性はほとんどありませんが...

0
user238719