0

いくつかのコーディングガイドライン違反を減らすことで貢献したいオープンソースのphpプロジェクトがあります。特定のスニフには約 5000 件の違反があるため、正規表現を使用するのが適切だと思います。

コーディング ガイドライン ルールは「FunctionCallArgumentSpacingNoSpaceAfterComma」と呼ばれます。これは、すべての引数をコンマとそれに続くスペースで区切る必要があることを意味します。

これらのスニペットの例は、このルールに違反しています:

$this->message('About', 'Warning, very important!', $this->securityRisk().$this->alterPasswordForm(),2);
$sFiles = t3lib_div::getFilesInDir(PATH_typo3conf,'sql',1,1);
if (!strstr(implode(',',$sFiles).',', '/database.sql,')) {

これらのコーディングガイドライン違反を修正するための便利な正規表現の作成を手伝ってくれる人はいますか? 数時間試しましたが、残念ながら自分でこれを解決することはできません。

4

2 に答える 2

0

私が最初に試すことは、次のようなものです。

sed 's/,\([^ ]\)/, \1/g' someFile.php

コンマの後に非スペースが続く場合は、コンマ、スペース、およびコンマの後にあった文字に置き換えます

ちょっと考えただけで、うまくいくかもしれません。

しかし、私が考えていないことがたくさんあるはずです...

于 2012-05-11T20:51:42.130 に答える
0

正規表現でこれを安全/確実に行うことはできません。一部の言語では、過去の文字列リテラルを確実にスキップすることさえできません (Perl のq構文を熟考してください。特に、Perl が「ブラケット」文字と見なすものでどのように機能するかを考えてください)。それらを無視しても、コードベースに複数の言語がある場合は問題が発生します (たとえば、PHP、Java、および Perl の文字列/文字リテラルには微妙な違いがあります)。

于 2012-05-11T21:06:15.380 に答える