次のタイプの文字列を一致させようとしています。
123456
1234.56
123,456
1,234.56
.123456
これらの文字列が一致していないことを確認したい:
12,34.56
1.23,456
これは私がこれまでに思いついたものです (このフォーラムの以前の投稿の助けを借りて):
(?<acreage>((\d{1,3}(,\d{3})+)?|\d*)\.\d+|(\d{1,3}(,\d{3})+|\d+)\.?)
これはすべての有効な文字列に一致していますが、無効な文字列の一部にも一致しています。
私が望むのは、開始時にある種の境界条件を配置することですが、一致させようとしている面積の前にテキストがある可能性があるため、^ 文字にすることはできません。\b 文字はコンマを単語境界として扱います。したがって、次のような文字列の場合は、
12,34,567.89
文字列のどの部分とも一致しないようにしたい場合は、34,567.89 を返します。
面積文字列の後に特定の文字をチェックするので、123,4567 から 123,456 & 7 を取得するような間抜けなことをすることについてはあまり心配していません。
これを有効な文字列のみに一致させ、無効な文字列には一致させないようにする方法を教えてください。