Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 允许在字符串开头使用单个字母字符_Php_Regex - Fatal编程技术网

Php 允许在字符串开头使用单个字母字符

Php 允许在字符串开头使用单个字母字符,php,regex,Php,Regex,我有一个pregmatch,它只允许数字字符,但我需要允许在字符串的开头有一个字母字符,比如 T17900 $value = preg_replace("/[^0-9\s]/", "", $value); 例如: 如果这是我的$value=22202-HAV.jpg 我只需要22202英镑。 如果这是我的$value=T22202-HAV.jpg 我只需要T22202(“/^[A-Z][0-9]*/”,“,”,“,$value”)^表示位置=开始 $value = preg_replace

我有一个pregmatch,它只允许数字字符,但我需要允许在字符串的开头有一个字母字符,比如

T17900

$value = preg_replace("/[^0-9\s]/", "", $value);
例如:

如果这是我的$value=22202-HAV.jpg

我只需要22202英镑。

如果这是我的$value=T22202-HAV.jpg


我只需要T22202(“/^[A-Z][0-9]*/”,“,”,“,$value”)^表示位置=开始

  $value = preg_replace('~^([a-z][0-9]*|[0-9]+)?.*~i', "$1", $value);
基本上,如果字符串以字母+一些数字或仅数字开头,请保留此部分并删除其余部分。

在这种情况下,我不会使用,而是:


一个很好的RegExp测试网站->如果α字符是可选的,在[a-Z]后面添加一个问号。不幸的是,如果你有一个像22201-HAV.jpg这样的文件名,那么这就不起作用了。最后的所有位都被保留了。我需要它离开22201,或者如果出于任何原因,有一封信在开头,也会留下。即T22201@Andy .. 也许你可以在你的问题中添加更多的细节,或者添加一个例子@代码两倍于括号后的问号,使我的文件名中的第一个数字变松。@Andy-那么你需要删除“-”以及文件名中其后的所有内容是否正确?使用
/[a-z]/i
获取字母仅适用于7位数据集,有些不推荐使用。您可以使用
/\pL/
获取单个字母,或者使用
/\pL+/
获取一行中的多个字母,这也适用于7位数据。
<?php
foreach(array('22202-HAV.jpg', 'T22202-HAV.jpg') as $value) {
    if (preg_match("/(?P<name>(?:\A[[:alpha:]])?[0-9\s]*)/", $value, $match)) {
        $value = $match['name'];
    }
    echo $value.PHP_EOL;
}