5

これから可能ですか:

米国特許 6,570,557

次の 3 つのグループを取得します。

  1. 私たち
  2. 特許
  3. 6570557 (コンマなし)

これまでのところ、私は得ました:

(US)(\s{1}Patent\s{1})(\d{1},\d{3},\d{3})

(?!,)カンマを取り除こうとしていたので、効果的に整数を取り除きました。

4

4 に答える 4

10

試してみてください:

var input   = 'US Patent 6,570,557',
    matches = input.match(/^(\w+) (\w+) ([\d,]+)/),

    code = matches[1],
    name = matches[2],
    numb = matches[3].replace(/,/g,'');
于 2013-01-22T13:47:37.467 に答える
2

正規表現を使用する代わりに、2 つの単純な関数を使用して実行できます。

var str = "US Patent 6,570,557"; // Your input
var array = str.split(" "); // Separating each word
array[2] = array[2].replace(",", ""); // Removing commas
return array; // The output

これも速くなるはずです。

于 2013-01-22T13:57:05.030 に答える
1

数字を 3 つの別々の部分として一致させてからそれらを結合しない限り、一致時にコンマを無視することはできません。

を使用して、一致結果から数値から区切り文字を削除する方がはるかに望ましいでしょうString.replace

于 2013-01-22T13:47:19.667 に答える
0

次のようにグループを追加するだけです。

(US)(\s{1}Patent\s{1})(\d{1}),(\d{3}),(\d{3})

そして、最後の 3 つのグループを連結します

于 2013-01-22T13:49:01.810 に答える