2011-07-25 8 views
0

ファイルを1行ずつ取り出し、すべての関数名を出力する正規表現が必要です。ですから、例えば:Regex Help、関数名を検索して返す

function apples_and_bananas ($params, $arguments) { 
     print "hello world of yellow and red"; 
    } 

と行の文字列操作によってラインをやったときに、それは速く実行されるように正規表現を使用してapples_and_bananas

を返します。 これを行うより良い方法がない限り。 正規表現を生成する方法がわかりません。それはとても複雑で、私はそれを教えられませんでした。学習するには良い文書を指すことができますか? これはWindowsフォームアプリケーションのC#用です。

+3

検索するコードはどの言語ですか? – murgatroid99

+0

言語はWindowsフォームのC#です – coolestdude1

+0

@coolestdude:あなたの質問に指定してください。 – Dor

答えて

2

ページ"Constants" @ php.netによると、正規表現は次のようになります。
function\s+([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)\s*\(

この正規表現は、ほぼすべての言語のために正しいことになって。あなたがPHPで許容できるそれらだけに関数の名前を制限したい場合は、あなたが@Dorが提案長い正規表現を必要とする

/function\s+([^\s\(]+)/ 

0

以下の正規表現のキャプチャされた文字列形式は、関数名でなければなりません。

/^function\s+([^\s]+)\s/ 

正規表現のチュートリアルをGoogleで実行するには、その正規表現のチュートリアルが必要です。 Mastering Regular Expressionsもチェックできます。

+0

ありがとう、しかし本はもはや利用できません。あなたはこのブックマークを持っている場合、更新されたものがあるかもしれません。 – coolestdude1

+0

Amazonで販売代理店またはeBay経由で利用できるはずです。 – gpojd

+0

いいえコール・アイル・チェックthat thanks user gpojd – coolestdude1

1

あなたがPHPを使用していて、PHPで関数名を見つけるためにコードを使用したいとすると、このコードを使用することができます。別の言語を使用している場合、コードはかなり似ているはずです。ただ、中のファイルを読み込み、正規表現表現/function\s+(\w*)\s*\(/に対してそれを一致させる必要があります。

$filename = 'yourfile.php'; 
$matches = array(); 
preg_match_all('/function\s+(\w*)\s*\(/', file_get_contents($filename), $matches); 
$matches = $matches[1]; 
// Matches contains array of function names 

私はあなたのためにこれをテストしました。

+0

甘いphpこれはこの質問には関係ありませんが(正しい言語で編集された申し訳ありません)、動作して仕事が終わります。PHPでそれを見たい人に投票しています。私が定期的に使用する言語です。ありがとうございます – coolestdude1

0

これが最も可能性が高いあなたが必要なすべてを行います。