1

私は正規表現をまったく理解していません。頭が痛いです。

私はこのようなテキストを少し持っています

blah blah blah (here is the bit I'd like to extract)

...そして、PHPのpreg_split、または同等のコマンドを使用してこれを抽出する方法がよくわかりません。

どうすればいいですか?preg がどのように機能するかを理解するのに適した場所はどこですか?

4

2 に答える 2

4

(と の間にあるものと一致させるために、このようなものがうまくいくはずです):

$str = "blah blah blah (here is the bit I'd like to extract)";
if (preg_match('/\(([^\)]+)\)/', $str, $matches)) {
    var_dump($matches[1]);
}

そして、あなたは得るでしょう:

string 'here is the bit I'd like to extract' (length=35)


基本的に、私が使用したパターンは以下を検索します:

  • オープニング(; ただし、 ( には特別な意味があるため、エスケープする必要があります。\(
  • 閉じ括弧ではない 1 つ以上の文字:[^\)]+
    • これはキャプチャされているので、後で使用できます。([^\)]+)
    • そして、この最初の(そしてここでのみ)キャプチャされたものは、$matches[1]
  • クロージング); ここでも、エスケープする必要がある特殊文字です。\)
于 2011-03-27T12:25:10.837 に答える
2
<?php

$text = "blah blah blah (here is the bit I'd like to extract)";
$matches = array();
if(preg_match('!\(([^)]+)!', $text, $matches))
{
    echo "Text in brackets is: " . $matches[1] . "\n";
}
于 2011-03-27T12:25:15.047 に答える