私は、文字列の多くを持っている、と私は削除する必要が「0」の文字列の先頭で、これは文字列の一例であるので、それを行うには良い方法です:文字列に文字を取り除く方法は?
今0130799.jpg //I need to get 130799
0025460.jpg //I need to get 25460
、私は'mはsubstr関数を使用していますが、Regexを使用しないと効率が良いと思いますか?
私は、文字列の多くを持っている、と私は削除する必要が「0」の文字列の先頭で、これは文字列の一例であるので、それを行うには良い方法です:文字列に文字を取り除く方法は?
今0130799.jpg //I need to get 130799
0025460.jpg //I need to get 25460
、私は'mはsubstr関数を使用していますが、Regexを使用しないと効率が良いと思いますか?
ただキャストが形式はすべての文字列([番号]の.jpg)で同じである場合は、あなたが行うことができ、効率的
echo (int) $var;
+1のための素晴らしい解決策。その箱から。 –
確かに、それは簡単でした!どうもありがとうございます ! – bahamut100
substr
を使用する場合は、substr
が文字列インデックスを認識する必要があるため、strpos
と組み合わせて使用する必要があります。
はい、正規表現を使う方が良いです。
あなたの質問は、(ゼロと非ゼロの数字をいくつかのために)どこでも文字列内の文字列00000ddddddd.jpgから数字を抽出する方法であれば、あなたがするpreg_matchを使用する必要があります。
はここで文字列全体がファイル名である場合は、intval
を使用したり、他の回答で提案されているようにキャストし、その後、http://writecodeonline.com/php/
preg_match('/([1-9][0-9]+)\.jpg/', "I have a file called 0000482080.jpg somewhere", $matches);
echo "I like to call it: {$matches[0]}";
に試すことができます完全な例です。あなただけ
preg_replace('/^0+/m','',$sourcestring);
^
を行うことができ、正規表現で
この方法で "000AA00"文字列はOKですか?結果は "AA00"ですか? – bahamut100
おっと!良いキャッチ。私は先行ゼロを拾わないように私の答えを編集しました。ごめんなさい。 –
は、文字列の先頭である(ここではm
と行の開始をモディファイ)
0+
1つの以上のゼロを意味します。
この正規表現はすべての先行ゼロと一致し、空の文字列で置き換えられます。
それは
Ray Toalの答えはこうです: "000AA00"の文字列はこの方法で問題ありませんか?結果は "AA00"ですか? – bahamut100
@ bahamut100正規表現のテストツールへのリンクを追加しました。はい、それはまた、 "000AA00"から先頭の0を削除します、これはあなたが欲しいですか? – stema
here on Regexr別の方法に比べて正規表現の効率に関して参照ください: http://stackoverflow.com/questions/3303355/substring-match-faster-with-regular-expression –