9

たとえば、「term--definition」のような行がたくさんあります。メモ帳++の正規表現は、大文字(大文字)で書かれた「用語」に対して実行できるため、TERM?

ありがとう!

4

1 に答える 1

14
Find what: ^(\S+)(?=\s*-)
Replace with: \U$1

これは何をしますか?検索パターンは、行の先頭にあるスペース以外の文字()にできるだけ多く一致し、括弧があるため\S+、変数にそれらをキャプチャします。$1その後、この「単語」の後にハイフンが続くことを表明する先読みが続きます(間に何もありません)。この先読みは実際には試合に含まれていないため、削除/置換されません。

置換は、「\Uこれを「で止めない限り、これ以降はすべて大文字で出力する」というものから始まります\E。次に$1、一致したものを書き戻し\S+ます(あなたの場合term)。しかし大文字で。

必ずNotepad++6に更新してください。それ以前は、正規表現は少し風変わりでした。

これは、置換文字列で可能なことのドキュメントです。

編集:

実際の行は、行の先頭に1つの単語を置き、次にハイフンを付けるよりも少し面白いかもしれません。しかし、あなたの与えられた例からは私にはわかりません。ただし、任意の数の単語に対してこれを行い、行の先頭の空白を無視するには(行のどこかにハイフンがある限り)、次のようにすることができます。

Find what: ^(([ \t]*[^\s-]+)*)(?=[ \t]*-)

しかし、実際の入力例がなければ、適切な検索パターンを自分で理解する必要があるのではないかと思います。

于 2012-12-01T14:59:54.543 に答える