1

たとえば、英数字の文字列があります。

abc123bcd, bdfnd567, dfd89ds.

文字列内の整数が最初に出現する前に、すべての文字を削除したいと考えています。

私の結果は次のようになります。

abc, bdfnd, dfd.

の使用を考えてsubstrいます。しかし、整数が最初に現れる前に文字列をチェックする方法がわかりません。

4

6 に答える 6

8

preg_replace [docs]と正規表現を使用して、不要な文字を簡単に削除できます。

$str = preg_replace('#\d.*$#', '', $str);

\d数字に.*$一致し、文字列の末尾までの任意の文字に一致します。

正規表現について詳しくは、http: //www.regular-expressions.info/をご覧ください。

デモ

于 2013-01-02T08:34:28.403 に答える
3

考えられる非正規表現のソリューションは次のとおりです。

例:

$string = 'foo1bar';
echo substr($string, 0, strcspn($string, '1234567890')); // gives foo
于 2013-01-02T08:37:19.963 に答える
2
$string = 'abc123bcd';
preg_replace("/[0-9]/", "", $string);

また

trim($string, '0123456789');
于 2013-01-02T08:34:52.500 に答える
0

あなたはこれを探していると思いますか?

$matches = array();
preg_match("/^[a-z]+/", "dfd89ds", $matches);
echo $matches[0]; // returns dfd
于 2013-01-02T08:37:27.067 に答える
0

これには正規表現を使用できます。

$string = 'abc123bcd';
preg_match('/^[a-zA-Z]*/i', $string, $matches);
var_dump($matches[0]);

生成されます:

abc
于 2013-01-02T08:41:40.057 に答える
0

+/- 記号を削除するには、次のようにします。

abs($番号)

そして絶対値を取得します。

例えば

$abs = abs($signed_integer);
于 2013-12-01T07:41:07.743 に答える