次のような文字列があるとしましょう: "1367,14,243,540"
(常に 4 つの数字と数字のみがあり、小数点以下はなく、常にカンマで区切られます)
文字列から選択/除外/返すことができるようにするには、正規表現はどのように見える必要が243
ありますか?
次のような文字列があるとしましょう: "1367,14,243,540"
(常に 4 つの数字と数字のみがあり、小数点以下はなく、常にカンマで区切られます)
文字列から選択/除外/返すことができるようにするには、正規表現はどのように見える必要が243
ありますか?
正規表現を主張する場合の正規表現は次の/\d+/g
とおりです (g ここでは js で複数選択する場合、Microsoft フレームワークとの一致を使用します)。ただし、分割を使用できます (js を使用した例):
var v='123,333,445,67';
console.log('split:');
console.log(v.split(',').map(function(n){return parseInt(n);}));
console.log('\nregex:');
console.log(v.match(/\d+/g).map(function(n){return parseInt(n);}));
数値は配列で返されます。インデックスを使用して目的の数値にアクセスできます。たとえば、2 としましょう。
注: split は正規表現より高速です。jsperf.com を使用してパフォーマンスの違いをテストできます。
編集:パフォーマンスの違いに興味がある人は、このリンクを確認してください。
注 2: ここでのマップは、文字列を整数に解析するためのものです。文字列として保持したい場合は削除できます。
コメントの 1 つが言うように、この場合、実際には正規表現を使用しないでください。常にジョブに適切なツールを使用するようにしてください。この場合、正規表現は非常にやり過ぎです。
あなたの問題はこのように簡単に解決されます
$sourceString = "1367,14,243,540";
$numbers = explode(",", $sourceString);
$neededNumber = $numbers[2];