たとえば、英数字の文字列があります。
abc123bcd
, bdfnd567
, dfd89ds
.
文字列内の整数が最初に出現する前に、すべての文字を削除したいと考えています。
私の結果は次のようになります。
abc
, bdfnd
, dfd
.
の使用を考えてsubstr
います。しかし、整数が最初に現れる前に文字列をチェックする方法がわかりません。
preg_replace
[docs]と正規表現を使用して、不要な文字を簡単に削除できます。
$str = preg_replace('#\d.*$#', '', $str);
\d
数字に.*$
一致し、文字列の末尾までの任意の文字に一致します。
正規表現について詳しくは、http: //www.regular-expressions.info/をご覧ください。
考えられる非正規表現のソリューションは次のとおりです。
例:
$string = 'foo1bar';
echo substr($string, 0, strcspn($string, '1234567890')); // gives foo
$string = 'abc123bcd';
preg_replace("/[0-9]/", "", $string);
また
trim($string, '0123456789');
あなたはこれを探していると思いますか?
$matches = array();
preg_match("/^[a-z]+/", "dfd89ds", $matches);
echo $matches[0]; // returns dfd
これには正規表現を使用できます。
$string = 'abc123bcd';
preg_match('/^[a-zA-Z]*/i', $string, $matches);
var_dump($matches[0]);
生成されます:
abc