我有此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