私は複雑すぎる(私にとってはあまりにも経験がないので)文字列比較ロジックの助けが必要です。基本的には、文字列を検証してフォーマットルールと一致することを確認したいと思います。 .NET 4.5.2を対象としたC#を使用しています。私は私をこのように文字列の期待される形式を与えるAPIで動作するようにしようとしています複雑な文字列比較ロジック
:
1:420 + 4:9 ####(「420」の位置に始めている必要があります1 ANDは位置4に "9"を持ち、位置5-8に数字を有する。
2:Z + 14:& & +20:10,11,12(位置2に "Z"を持たなければならない。位置14,15のアルファベット文字は、位置20から始まる「10」、「11」、または「12」のいずれかを持ちます。
凡例:
":" =位置/ VALUELIST分離
"" =値セパレータ
"+" =試験セパレータ
"#" =数字桁のみワイルドカード
このことを考えると"&" =アルファ文字だけのワイルドカード
、私のモミstの考えは、入力文字列の一連の部分文字列と分割を行い、各セクションで比較を行うことです。あるいは、forループを実行して、入力文字列の長さの終わりに達するまで、各文字を1つずつ繰り返します。
この場合、入力文字列は「420987435744585」のようなものとします。最初の3つは420、4の位置は9、そして次の5〜8は数値なので、ルール番号1を使用して、これをパスする必要があります。
これまでは、検証をパス/フェイルするとboolを返すメソッドを作成しました。入力された文字列が渡されます。次に、+と - を分割して、すべてのandセクションを取得し、コンマで分割してルールグループを取得します。しかし、これは私が立ち往生している場所です。それは容易でなければならないかもしれないと思われるかもしれませんが、私はちょうどその周りに私の頭を包むように見えることができないと私は配列のトン、foreachループ、if文などで終わるつもりだと思っています...入力文字列が自分の書式と一致する場合、真偽を検証して返します。
誰か助けて助けてください。
ありがとうございます!
正規表現を使用できますか? – vmg
はい、私は正規表現を使用することができます。私はこれらの行に沿って以下の応答を見る。 –