数字の文字列をスキャンしようとしています。番号は "v/v。/ vol/vol。"の後にすることはできません。括弧の中に入れることはできません。ここに私が持っているものがあります:ICU正規表現を使用してカッコ内にない数字を見つける正規表現
NSString *regex = @"(?i)(?<!v|vol|vol\\.|v\\.)\\d{1,4}(?![\\(]{0}.*\\))";
NSLog(@"Result: %@", [@"test test test 4334 test test" stringByMatching:regex]);
NSLog(@"Result: %@", [@"test test test(4334) test test" stringByMatching:regex]);
NSLog(@"Result: %@", [@"test test test(vol.4334) test test" stringByMatching:regex]);
怒って、これは動作しません。 。 -
(?<!v|vol|vol\\.|v\\.)
小文字を区別しない正規表現のケースを作る - V/V /容量/容量に対して負のルックの背後にあるアサーション
(?i)
:私の正規表現は、次の4つの部分に分けることができます。
\\d{1,4}
- 探している数字は、1〜4桁です。
(?![\\(]{0}.*\\))
- 負の先読みアサーション:。。私は見てビハインドアサーションを取る場合には、その前に(がありますしない限り、数は、a)は、先行することはできません
はMaddeningly、それが動作ここでの問題は何ですか?私はICUの正規表現の構文を使用しRegexKitLiteを、使用してい
私は、Javaの 'Pattern'クラスの可変幅のルック・バックがパフォーマンスに重大な影響を与える可能性があることに気付きました。私はICUライブラリを使用していませんが、ちょうどそれらの上に垂れ流してしまったので、まだそこには本当かどうかはわかりません。 – tchrist
lookbehindの問題に関する正しい権利 - 私はドキュメントを誤読しました。しかし、それはカッコ内にない数字を拾い上げることができません。括弧内の論理に欠陥がありますか?例:@ "703(1234)の文字列(ここでは2番目の単語)(複数の文字)" –