で始まる:正規表現の検証と文字列を抽出し、私は、以下の条件での正規表現の作成に取り掛かる方法を知りたいのですが、10進数または分数
- 文字列は、10進数または分数 で開始する必要があります。
- 小数点は正で小数点以下2桁までとします。
- 分数は、それ自身または1つの整数と小数部の小数部、つまり1 1/2、3/4で、スペースで区切る必要があります。 誰かがそれはそれは私が文字列の小数点以下のいずれかで始まることを検証する場合と1 1/2ではなく、必要な
- リスト項目
だろう新しいことを1と1/2を書いた場合(クールだろうまたは画分とそれのうち値
有効な例
"1 cup" = VALID = Extracted values: (1) (cup)
".5 cup" = VALID = Extracted values: (0.5) (cup)
"1.0 cup" = VALID = Extracted values: (1.0) (cup)
"1.10 cup" = VALID = Extracted values: (1.10) (cup)
"1/2 cup" = VALID = Extracted values: (1/2) (cup)
"1 1/2 cup" = VALID = Extracted values: (1 1/2) (cup)
"1 and 1/2 cup" = VALID = Extracted values: (1 1/2) (cup)
"1 and a 1/2 cup" = VALID = Extracted values: (1 1/2) (cup)
"1 & 1/2 cup" = VALID = Extracted values: (1 1/2) (cup)
無効な例として抽出します
"1 1/2 1/4 1/4 cup" = INVALID (only allow whole and fraction, or one fraction)
"1.034 cup" = INVALID (2 decimal places only)
"cup 1/2" = INVALID (not the start of the string)
EDIT 私がこれまで持っている:
解析する画分:
\d*\s*(and*|and a*|\s*)\d+\/?\d*(.*)$
解析小数:
^\d{0,2}(\.\d{1,2})?$
マイ組み合わせたバージョン:
(\d*\s*&|and*|and a*|\s*\s*\d+\/?\d*)|(\d{0,2}\.\d{1,2})*(.*)$
おかげ
よろしくDotnetShadow
、ちょうど適切に2に参加する方法がわからない、それはそれがより良い最適化することができ?,および無効1はまだ任意の助けをいただければ幸いですを解析
私は、これまで役に立ったことを含めて私の投稿を編集しました – DotnetShadow