ファイルから1つずつ入力レコードを検証したいと思います。ファイルに10,000〜20,000件のレコードが含まれている可能性があります。厳密なn文字と一致する正規表現は、改行文字を含む
レコードには、大文字、小文字、ドット、スペース、数字のみを使用できます。そしてレコードは新しい行の文字で終わる。
正規表現で、上記の5つのパラメータを持つレコードのみを、両方のタイプ(\ nまたは\ r \ n)の新しい文字を含めて一致させることができます。レコードに他の文字が含まれている場合は、私が言及したものは一致してはいけません。
私はこの正規表現を試しました。
[A-Z\d\- ]{120}\s+$
10文字の例を挙げてください。
1) Input
AAAA12.0 A\nor\r\n
Regex should match for given input(1) because of exact ten characters plus new line character(one is possible at a time)
2)Input
AA-A13.0 AAA\nor\r\n
Regex should match for given input(2) because number of characters are more than 10
しかし、この正規表現はいつか失敗します。私の5つの要件をより厳格にするために、この正規表現にどのような提案をしていますか?
これはうまく見えますが、それはおそらくまだ考慮されていない事柄です。このサイトは良いテスト場です:https://regex101.com/ –
それの背後にあるコードは何ですか?ドットにマッチさせる必要がある場合は、パターンにパターンを含めることをおすすめします。また、文字列の終わり(行?)を '$'でチェックし、 '^'(文字列/行頭の始まり)アンカーを使用しません。正確なサンプル入力テキストがなければ、あなたを助ける方法が明確ではありません。 –
@WiktorStribiżew、私はドットを使用しています。なぜなら、レコードの小数値も来るからです。あなたはそうだと思いますか?この正規表現はレコード120文字と改行文字(\ nまたは\ r \ n)とのマッチングには問題ありませんか? – kelly