2

形式でリストされている電子メールからセクションのリストを抽出したいとしましょう

Section 26, 753, 87, 201, 47

この特定の種類の書式設定がドキュメントに存在することは知っていますが、どこにあるのかわかりません。すべてのセクション番号を抽出する正規表現を作成するにはどうすればよいですか? (申し訳ありませんが、後で既に持っているパターンを投稿します。) 現在、セクション句、スペース、数字の順に検索します。残りはどのように抽出されますか?おそらく、コンマ、スペース、数字の0回以上の繰り返しですか?それはどのように正確にフォーマットされていますか?

4

1 に答える 1

2

PHP / PCREでは、正規表現から可変数のキャプチャを直接返すことはできません(ただし、これをサポートする実装、特に.NETPerl 6があります)。

PHPでは、コードを作成する必要があります。ループ内の文字列から一致を削除し、リストを抽出してからpreg_match_allを使用して数値を取得するなど、さまざまなオプションがありますが、リスト全体を独自の文字列に抽出して使用すると思いますsplit( 、preg_split)個々のセクション番号を取得するには:

$str = 'Section 26, 753, 87, 201, 47';
if (preg_match('/Section\s+(\d+(?:,\s*\d+)*)/', $str, $match)) {
  $sections = preg_split('/,\s*/', $match[1]);
}

print_r($sections);

これにより、望ましい結果が得られます。

 Array (
     [0] => 26
     [1] => 753
     [2] => 87
     [3] => 201
     [4] => 47 
)
于 2012-06-29T03:37:35.773 に答える