3

画像が次のような名前に関連付けられているドキュメントから、一連の画像URLを分離する必要があります。

bellpepper = "http://images.com/bellpepper.jpg"
cabbage = "http://images.com/cabbage.jpg"
lettuce = "http://images.com/lettuce.jpg"
pumpkin = "http://images.com/pumpkin.jpg"

変数名、等号、二重引用符を削除して、URLを除くすべてのテキストをファイルから削除したいので、URLのリストだけの新しいファイルを1行に1つずつ作成します。

[検索]ダイアログウィンドウの[正規表現]チェックボックスをオンにして、Textpadで正規表現を使用して非URLデータを識別するさまざまな方法を試しましたが、Textpadはそれらのいずれも気に入らないようです。

Configure->Preferences->Editor

オプションがあります:

"Use POSIX regular expression syntax"

何とは対照的に?

この正規表現操作を実行する際の問題が、Textpadによる正規表現の実装の癖に関係している可能性はありますか?

4

3 に答える 3

4

POSIX の代替は、TextPad のデフォルトとは対照的です。検索/置換のヘルプ ドキュメントから:

TextPad の正規表現は POSIX 標準 P1003.2 に基づいていますが、構文は POSIX の構文または UNIX 拡張正規表現 (デフォルト) にすることができます。

TextPad で作業を完了するには、次を使用します。

Find in: ^[^"]*"\([^"]*\)"
Replace with: \1

編集:

式を分解するには:

^ - start of line
[^"]* - in a set the caret ^ is for negation, 
        so a greedy match of anything that is not a "
        in this case, everything up to the first quote
" - the first quote per line in your source text
\(...\) - puts together a group that can be referenced later
[^"]* - same explanation as above, this time matching the url in question
" - the last quote on the line

また、TextPad の正規表現に関するヘルプ ドキュメントを参照すると、「デフォルト」バージョンと「POSIX」バージョンの両方を並べてリストした法的な表現の表があります。唯一の違いは、デフォルトでの Grouping の括弧()と Occurance のカーリー{}のエスケープと、POSIX バージョンでのエスケープの欠如です。

それを念頭に置いて、「POSIX 正規表現構文を使用する」オプションをオンにして TextPad でジョブを実行するには、上記の「Find in」式を次のように置き換えます。

Find in: ^[^"]*"([^"]*)"
于 2009-07-17T14:25:30.663 に答える
3

POSIXの他に、Perlスタイルの正規表現もあります。

于 2009-07-17T14:21:31.687 に答える
2

「sed」に見られるような元の基本的な正規表現は、私たちが最も頻繁に使用するものとはいくつかの違いがあります。たとえば、( and ) の代わりに\(and を使用してグループを示し、「+」修飾子はありません。\)

また、リンクされた質問で、「*」が括弧の内側ではなく外側にあることに注意してください。つまり、最初のグループで一致する文字は 1 つだけです。

于 2009-07-17T14:26:03.613 に答える