0

以下の文字列を検証および解析するための正規表現を作成したいと思います。

TESTE_CASE.PESSOAS;CO_CNPJ_CEI BETWEEN (0000000000370000000000, 0000000000370000009999);*

次の正規表現を使用して、文字列を検証できます。

\s*\w+.\w+\s*;\s*\w+\s+(?i)BETWEEN\s+\(\s*\w+\s*,\s*\w+\s*\)\s*;\s*\*\s*

この文字列を解析するための最良の方法は何ですか?以下のような出力が必要です:

String1 = TESTE_CASE.PESSOAS
String2 = CO_CNPJ_CEI
String3 = 0000000000370000000000
String4 = 0000000000370000009999
String5 = *

ありがとう、

4

3 に答える 3

1

私はこのようにします

\s*([^;]+);([^\s]+).*?\(\s*(\d+)\s*,\s*(\d+).*?;(\*)?

$ 1 = TESTE_CASE.PESSOAS
$ 2 = CO_CNPJ_CEI
$ 3 = 0000000000370000000000
$ 4 = 0000000000370000009999
$ 5 = *

于 2012-08-04T05:05:52.193 に答える
1

必要な式を()次のように囲むことができます。

( subexpression )
Captures the matched subexpression and assigns it a zero-based ordinal number.

インデックスでキャプチャされた式を取得します

または名前付きグループを使用します。

(?< name > subexpression)
Captures the matched subexpression into a named group.

名前でキャプチャされた式を取得します

于 2012-08-04T08:36:30.107 に答える
0

これで試してください:(\b(?!BETWEEN\b)[\w.]+\b|\*)

于 2012-08-04T06:04:09.863 に答える