0

phpで使用する正規表現を探しています:

私は配列にこのような4つの文字列を持っています:

$strA = 'John P. Beck';   // name and surname
$strB = '12012 BlaBla Xx';  // street
$strC = 'Houston TX 12345-6789';  // city + zip code
$strD = '(123) 456-7890';  // telephone number

今ではforループで正規表現を使用していますが、常に最初と2番目の文字列の両方が返され、場合によっては1番目と3番目の文字列が返されます。

for($i = 0; $i < count($array); $i++)
{
    if(preg_match("/[A-Z]/", $array[$i]))
    {
      echo $array[$i] . '<br>';
    }
    else echo 'no match<br>';
}

この条件の正規表現が必要です:-文字列に少なくとも1つの大文字があり、数字は絶対にありません... $strA....のみを返します。

どうもありがとうございます

編集

申し訳ありませんが、私は自分自身を悪いと説明し、詳細を追加しませんでした...これは配列の構造です(例):

[0] => <p>
[1] =>                41
[2] => <br />
[3] =>                John P. Beck
[4] => <br />
[5] =>                12012 BlaBla Xx
[6] => <br />
[7] =>                Houston TX 12345-6789
[8] => <br />
[9] =>                (123) 456-7890
[10] => <br />
[11] =>                42
[12] => <br />
[13] =>                Linda F. Green
[14] => <br />
[15] =>                1888 BlaBla Xx
[16] => <br />
[17] =>                Saint Louis, MO 12345-6789
[18] => <br />
[19] =>                (123) 456-7890
[20] => <br />
...
...
...

4番目の文字列と14番目の文字列だけを保存する必要があります..など...

@nickb:$ array [0]を使用すると、常にapタグが返されます。私はforループに入っています...... :)

4

2 に答える 2

1

0文字以上(数字を除く)、1つ以上の大文字、0文字以上(数字を除く):

/[^0-9]*[A-Z]+[^0-9]*/

大文字で始まるデータが必要な場合:

/^[A-Z]+[^0-9]*/
于 2012-06-01T23:27:30.940 に答える
0

文字列のいずれかの部分が正規表現に一致する場合、preg_matchは一致します。文字列全体をテストする場合は、文字列の開始と終了を表す^と$を使用します。

于 2012-06-02T00:25:33.490 に答える