php正则表达式为空格

时间:2014-01-18 17:13:14

标签: php regex

我想验证用户输入,如下所示: “艾哈迈达巴德国际 - 艾哈迈达巴德,印度(AMD)”,第一个字母是资本,可以有空间和 - 在第一部分。然后用一个空格逗号,然后用'('letters')'写一些字母。 我试过这样的话:

preg_match('/^([a-zA-Z- ]+), ([a-zA-Z]+)([A-Z()]+)/', $string),

有谁知道为什么它不起作用?感谢

3 个答案:

答案 0 :(得分:0)

<?php

$foo = "Dave Smith";
$bar = "SamSpade";
$baz = "Dave\t\t\tSmith";

var_dump(preg_match('/\s/',$foo));
var_dump(preg_match('/\s/',$bar));
var_dump(preg_match('/\s/',$baz));

输出

int(1)
int(0)
int(1)

请参阅:https://stackoverflow.com/questions/1161708/php-detect-whitespace-between-strings

答案 1 :(得分:0)

您需要在括号中添加反斜杠。试试这个:

$string = "Ahmedabad Intl-Ahmedabad, India(AMD)";
echo  preg_match('/^[a-zA-Z- ]+, [a-zA-Z]+\([A-Z]+\)/', $string); //1

$string = "Ahmedabad Intl-Ahmedabad, India(AMD";
echo  preg_match('/^[a-zA-Z- ]+, [a-zA-Z]+\([A-Z]+\)/', $string); //0

答案 2 :(得分:0)

您可以使用:

if (preg_match('~^[A-Z][a-z]*+(?>[ -][A-Z][a-z]*)*+, [A-Z][a-z]*\([A-Z]+\)$~', $string)) {
    // true
} else {
    // false
}