-2

次のような文字列があるとしましょう: "1367,14,243,540"(常に 4 つの数字と数字のみがあり、小数点以下はなく、常にカンマで区切られます)

文字列から選択/除外/返すことができるようにするには、正規表現はどのように見える必要が243ありますか?

4

4 に答える 4

3

正規表現を主張する場合の正規表現は次の/\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);}));

jsfiddle

数値は配列で返されます。インデックスを使用して目的の数値にアクセスできます。たとえば、2 としましょう。

注: split は正規表現より高速です。jsperf.com を使用してパフォーマンスの違いをテストできます。

編集:パフォーマンスの違いに興味がある人は、このリンクを確認してください

注 2: ここでのマップは、文字列を整数に解析するためのものです。文字列として保持したい場合は削除できます。

于 2013-07-12T10:24:53.267 に答える
1

コメントの 1 つが言うように、この場合、実際には正規表現を使用しないでください。常にジョブに適切なツールを使用するようにしてください。この場合、正規表現は非常にやり過ぎです。

あなたの問題はこのように簡単に解決されます

$sourceString = "1367,14,243,540";
$numbers = explode(",", $sourceString);
$neededNumber = $numbers[2];
于 2013-07-12T10:21:29.477 に答える