Notepad++ または任意のエディターに大量のコードがありますが、すべてのテキストをすぐに置き換えたいです。
Notepad++ には編集と置換のオプションはありますか?
<option value="0" <?php if($options=="PHP") echo 'selected="selected"'; ?>>Min Price</option>
<option value="25000" <?php if($options=="PHP") echo 'selected="selected"'; ?>>25,000</option>
<option value="50000" <?php if($options=="PHP") echo 'selected="selected"'; ?>>50,000</option>
<option value="75000" <?php if($options=="PHP") echo 'selected="selected"'; ?>>75,000</option>
<option value="100000" <?php if($options=="PHP") echo 'selected="selected"'; ?>>100,000</option>
<option value="125000">125,000</option>
<option value="150000">150,000</option>
<option value="175000">175,000</option>
<option value="200000">200,000</option>
<option value="225000">225,000</option>
-------
-------
-------
-------
-------
----etc---
最初の 4 つの値のように選択された PHP エコーを他のすべての値に簡単に追加する方法。
注: ループは必要ありません。(Notepad++ または Sublime Editor を使用しています)
答え1
XY 問題 (糞を磨く作業) はやめて、非 DRY コードを廃止し、さまざまな値を入力するループを使用することをお勧めします。反復処理では、selected
アプリケーションに適した条件付きロジックを使用して、条件付きで属性を挿入します。
コード: (デモ)
$selectedNumber = 75000;
echo '<option value="0">Min Price</option>';
foreach (range(25000, 200000, 25000) as $number) {
printf(
'<option value="%s"%s>%s</option>',
$number,
$number == $selectedNumber ? ' selected' : '',
number_format($number)
);
}
出力:
<option value="0">Min Price</option>
<option value="25000">25,000</option>
<option value="50000">50,000</option>
<option value="75000" selected>75,000</option>
<option value="100000">100,000</option>
<option value="125000">125,000</option>
<option value="150000">150,000</option>
<option value="175000">175,000</option>
<option value="200000">200,000</option>
肥大化した/WET スクリプトをそのままにしておきたい場合は、選択範囲内の対象となるオプション タグをすべて強調表示し、次の操作を実行します。
検索:(<option value=")(\d+)(")
置換:$1$2$3<?php echo \$selectedNumber == "$2" ? ' selected' : ''; ?>
私は Sublime (または Notepad++) をもう使用していませんが、PHPStorm では同じ検索パターンを使用してから、「すべての出現を選択」( Ctrl-Alt-Shft-J) をクリックし、キーワードの右矢印を押します (これにより、一致した文字の強調表示が解除され、一致の最後にキャレットが配置されます)。その後、各行に動的なテキストが必要ない場合は、必要なものを入力し始めますが、質問のその部分は (@Toto が指摘したように) 論理的に意味がありません。