我正在寻找与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循环中使用正则表达式,但它总是返回第一个和第二个字符串,有时是第一个和第三个字符串......
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]它总是返回一个p标签..我在for循环中......:)
答案 0 :(得分:1)
0个或更多个字符(数字除外),后跟一个或多个大写字母,后跟0个或多个字符(数字除外):
/[^0-9]*[A-Z]+[^0-9]*/
如果您希望数据以大写字母开头:
/^[A-Z]+[^0-9]*/
答案 1 :(得分:0)
preg_match将匹配。 如果要测试整个字符串,请使用^和$表示字符串的开头和结尾。