1

誰かが助けてくれることを望んでいる正規表現の問題があります。

私は次のタイプの文字列を持っています:

" name VARCHAR(11) NOT NULL, "

そのうち、長さだけを抽出しようとしています。つまり、角かっこ内の数字です。

私はこれを見てきました:角括弧内の括弧からコンテンツを取得するための真の正規表現ですが、私の場合でそれを機能させる方法を理解していません。

str_replaceを使用して不要なデータを削除できることはわかっていますが、これは面倒でリソースを浪費することになります。

誰か助けてもらえますか?

4

3 に答える 3

1

これはそれを行う必要があります:

$matches = Array();
preg_match("/\w+\((\d+)\)/i", " name VARCHAR(11) NOT NULL, ", $matches);

$matchesが含まれるようになります

Array
(
    [0] => VARCHAR(11)
    [1] => 11
)
于 2013-02-01T12:14:09.143 に答える
0

探しているのが角かっこの間の数字だけの場合は、次のようなコードを使用できます-

$str = " name VARCHAR(11) NOT NULL, ";
$matches = array();
$pattern = '/\((\d+)\)/';
preg_match_all($pattern,$str,$matches);

このコードはpreg_match()、正規表現の一致を実行する関数を使用します。

提供されている場合matchesは、検索結果で埋められます。$matches[0]完全なパターンに一致するテキストが含まれ、$matches[1]最初にキャプチャされた括弧で囲まれたサブパターンに一致するテキストが含まれます。

于 2013-02-01T12:15:46.907 に答える
0

このパターンを試してください:

/.*\(([0-9]+)\).*/
于 2013-02-01T12:15:54.363 に答える