0

以前に4桁の数字または「id」という単語のないコンマを選択しようとしていますが、これを試しました:

   ( ? < ! [ \ d { 5 } | id ] ) ,

問題

たとえば、入力文字列が「1999」の場合、そのカンマが選択されていないのですが、その理由がわかりません。

4

2 に答える 2

3

このパターンを試してください:

(?<!\d{5}|id),

あなたのパターン(?<![\d{5}|id]),は、数字の後にないコンマを探しています{, }, |, i, またはd- 彼らはチャータークラスにあるべきではありません: []. どちらかといえば、(?<![\d]{5}|id),動作しますが、冗長です。

于 2013-01-11T14:56:04.223 に答える
1

まず第一に、/xフラグを使用していない限り、各スペースはスペースと一致しようとします。だからそれらを取り出してください。

第二に、[...]おそらく代替 ( ) をグループ化するために使用していますが、角括弧|実際には文字クラスを示してます。つまり、これは次のとおりです。 [\d{5}|id][id5{}|]

(?<!\d{5}|id),

最後の問題は、正規表現の多くの実装 (使用しているものを指定していない) が可変幅の後読みアサーションをサポートしていないことです。したがって、次のようなことをする必要があるかもしれません:

(?<!\d{5}|...id),
于 2013-01-11T14:57:54.893 に答える