我有此pregmatch其允许仅数字字符,但我需要为允许一个字母字符的电位作为允许在一个字符串的开始的单个字母字符
T17900串这样的开始
$value = preg_replace("/[^0-9\s]/", "", $value);
例:
,如果这是我的$值= 22202-HAV.jpg
我只需要22202.
如果这是我的$值= T22202-HAV.jpg
我只需要T22202
我有此pregmatch其允许仅数字字符,但我需要为允许一个字母字符的电位作为允许在一个字符串的开始的单个字母字符
T17900串这样的开始
$value = preg_replace("/[^0-9\s]/", "", $value);
例:
,如果这是我的$值= 22202-HAV.jpg
我只需要22202.
如果这是我的$值= T22202-HAV.jpg
我只需要T22202
我不会在这种情况下使用preg_replace
,但preg_match
代替:
<?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;
}
看到它in action
而且我不明白你为什么在你的模式需要这个\s
,但因为它是在那里,我已经添加到我的答案代码以及
一个很好的RegExp测试网站 - > http://www.regextester.com/ – ManseUK