0

私の IDE PHPstorm では、正規表現を使用して検索と置換を行うことができます。私がよく行うことの 1 つは、順序またはアクションを切り替えることです。別名、関数 a で、リスト b を値として使用して、リスト a の項目に値を設定します。 .

しかし、関数bでそれを反転したい。リストaを値として使用して、リストbのアイテムに値を設定したいと思います。

適切な例は次のとおりです。

var $clipDetailsGame        = $('#clipDetailsGame');
var $clipDetailsTitle       = $('#clipDetailsTitle');
var $clipDetailsByline      = $('#clipDetailsByline');
var $clipDetailsTeamOne     = $('#clipDetailsTeamOne');
var $clipDetailsTeamTwo     = $('#clipDetailsTeamTwo');
var $clipDetailsReferee     = $('#clipDetailsReferee');
var $clipDetailsDescription = $('#clipDetailsDescription');
var $clipDetailsCompetition = $('#clipDetailsCompetition');

function a(clip){
    clip.data('gameId'       , $clipDetailsGame.val());
    clip.data('title'        , $clipDetailsTitle.val());
    clip.data('byline'       , $clipDetailsByline.val());
    clip.data('team1'        , $clipDetailsTeamOne.val());
    clip.data('team2'        , $clipDetailsTeamTwo.val());
    clip.data('refereeId'    , $clipDetailsReferee.val());
    clip.data('description'  , $clipDetailsDescription.val());
    clip.data('competitionId', $clipDetailsCompetition.val()); 
}

function b (clip){
    $clipDetailsGame       .val(clip.data('gameId'));
    $clipDetailsTitle      .val(clip.data('title'));
    $clipDetailsByline     .val(clip.data('byline'));
    $clipDetailsTeamOne    .val(clip.data('team1'));
    $clipDetailsTeamTwo    .val(clip.data('team2'));
    $clipDetailsReferee    .val(clip.data('refereeId'));
    $clipDetailsDescription.val(clip.data('description'));
    $clipDetailsCompetition.val(clip.data('competitionId')); 
}

書式設定を除いて (要点を明確にするためにあるだけです)、代わりにどのような正規表現を使用できますか?

4

2 に答える 2

4

基本的な正規表現 -- 凝ったものでも複雑なものでもありません

検索:(clip\.data\('[a-zA-Z0-9]+')\s*, (\$[a-zA-Z0-9]+\.val\()(\)\);)
置換:\$2\$1\$3

ここでの唯一の PhpStorm 関連のものは、置換文字列形式です。それを機能させるには、$ を「エスケープ」する必要があります (つまり、 (他のエンジンで使用されているように) or\$2の代わりに 2 番目のバックトレースを使用する必要があります)。$2\2

これはこれを変換します:

clip.data('gameId'       , $clipDetailsGame.val());
clip.data('title'        , $clipDetailsTitle.val());
clip.data('byline'       , $clipDetailsByline.val());
clip.data('team1'        , $clipDetailsTeamOne.val());
clip.data('team2'        , $clipDetailsTeamTwo.val());
clip.data('refereeId'    , $clipDetailsReferee.val());
clip.data('description'  , $clipDetailsDescription.val());
clip.data('competitionId', $clipDetailsCompetition.val()); 

これに:

$clipDetailsGame.val(clip.data('gameId'));
$clipDetailsTitle.val(clip.data('title'));
$clipDetailsByline.val(clip.data('byline'));
$clipDetailsTeamOne.val(clip.data('team1'));
$clipDetailsTeamTwo.val(clip.data('team2'));
$clipDetailsReferee.val(clip.data('refereeId'));
$clipDetailsDescription.val(clip.data('description'));
$clipDetailsCompetition.val(clip.data('competitionId')); 

便利なリンク: http://www.jetbrains.com/phpstorm/webhelp/regular-expression-syntax-reference.html

于 2013-06-19T09:13:41.803 に答える