3

「昨日」、「今日」、「明日」などを DateTimes や「8 秒前」、「今から 10 分後」に変換する C# 文字列拡張スニペットまたはライブラリについて聞いたことがある、またはアクセスできる人はいますか? TimeSpans に?

そうでない場合、C# でどのように見えるかについて何か考えはありますか?

ありがとう

4

3 に答える 3

2

そして、これはこの主題に関する公開討論になりつつあるので...

C# などで同様のものを見たことがないので、次のようにします。

明らかにパーサーが必要です...

1)「便利な」パーサーを自分で作成します-ここでターゲットにしている「言語」に応じて、単純な「トークン化」で十分に単純化されている場合は、「既知の単語」をフィルタリングするだけです(たとえば、語彙を気にしないでください分析など、「奇妙な」単語を許可します)、それらをバスケットに入れて数字を抽出します。一致秒など、数、およびいくつかのフレーズ。それは理想的ではありませんが、単純であれば、それが機能するのは良いことです.

2) RegEx はASTタイプの問題には理想的ではありませんが、繰り返しますが、問題を最小限に抑えれば、その一部を解析できます。個人的には、私はしませんが、単純なフォーマットを解析するだけで、簡単で汚いものが必要で、実際の言語を持っていない場合は、試してみてください

3) より複雑で、より良い解決策を得るには、C# 用のライブラリを備えたAntlrのような 1 級のパーサーを使用します (ただし、必要に応じて、より具体的な質問を提示して、コードを掘り下げてみます) )。
また、式ベースの C# ネイティブ パーサーであるIronyもあります。これを使用するのはとても楽しいものです (ただし、Antlr ほど高速でも高性能でもありませんが、問題ではないかもしれませんが、操作が簡単で、より多くのヘルプなどがあります)。こちらもご覧ください

于 2013-04-05T23:37:43.443 に答える