我有一个字符串数组。我需要所有不包含任何特殊字符的字符串。只允许使用a到z。有没有使用正则表达式的方法或是否有任何字符串函数?
答案 0 :(得分:0)
您可以使用匹配仅包含A到Z和a到z的字符串的正则表达式^[a-zA-Z]*$
。 (它也会匹配一个空字符串)。
说明:
^
是一个锚点,它将正则表达式锚定在字符串的开头(因此正则表达式从字符串的开头开始匹配)[a-zA-Z]
是一个包含我们想要匹配的字符的字符类*
表示应该匹配零次或多次(使用+一次或多次)$
是字符串结尾的锚点,因此正则表达式必须在字符串末尾停止匹配,否则它将不匹配。使用preg_match检查单个字符串是否与模式匹配(如果没有匹配,preg_match返回0,所以我们只检查是否匹配):
if ( preg_match('/^[a-zA-Z]*$/', $subject) !== 0 ){
//match
因此,您可以迭代字符串数组,并创建一个与模式匹配的新数组
答案 1 :(得分:0)
$array = "your_array";
$output_array = array();
foreach ($array as $elem) {
if ( preg_match('/^[a-zA-Z]{1,}$/', $elem)) {
$output_array[] = $elem;
}
}
output_array中的将是您的数据