これから可能ですか:
米国特許 6,570,557
次の 3 つのグループを取得します。
- 私たち
- 特許
- 6570557 (コンマなし)
これまでのところ、私は得ました:
(US)(\s{1}Patent\s{1})(\d{1},\d{3},\d{3})
(?!,)
カンマを取り除こうとしていたので、効果的に整数を取り除きました。
これから可能ですか:
米国特許 6,570,557
次の 3 つのグループを取得します。
これまでのところ、私は得ました:
(US)(\s{1}Patent\s{1})(\d{1},\d{3},\d{3})
(?!,)
カンマを取り除こうとしていたので、効果的に整数を取り除きました。
試してみてください:
var input = 'US Patent 6,570,557',
matches = input.match(/^(\w+) (\w+) ([\d,]+)/),
code = matches[1],
name = matches[2],
numb = matches[3].replace(/,/g,'');
正規表現を使用する代わりに、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
これも速くなるはずです。
数字を 3 つの別々の部分として一致させてからそれらを結合しない限り、一致時にコンマを無視することはできません。
を使用して、一致結果から数値から区切り文字を削除する方がはるかに望ましいでしょうString.replace
。
次のようにグループを追加するだけです。
(US)(\s{1}Patent\s{1})(\d{1}),(\d{3}),(\d{3})
そして、最後の 3 つのグループを連結します