我想分析格式化的基本值和一些自定义字符串
TextReader
-本质上像
scanf
允许。
-
我的输入可能没有换行符,因此readline+regex不是一个选项。我可以使用其他方法对文本输入进行分块;但问题是我在编译时不知道分隔符(这很棘手),而且该分隔符可能依赖于本地化。例如,后面跟逗号的float可能是“1.5”或“1,5”,但在这两种情况下,试图解析float都应该是“贪婪的”。
-
为了安全起见,我想假设我的输入是积极的敌意(例如,从网络流流入):即故意缺少分块分隔符。
-
我想避免使用自定义的regex:int.parse和double.parse,它可以很好地工作,并且具有本地化意识。不要让我从datetime开始——不管怎样,我可能需要一些自定义模式,但是编写regex来覆盖这个场景听起来并不有趣。
举个具体的例子,假设我有一个
特克斯特雷德
我知道下一个值应该是
double
-在不读取整个流和不手动编写可本地化的双解析器的情况下,如何提取该双预视(lookahead)以及可能有限的lookahead?
类似的问题
前面有个问题”
Looking for C# equivalent of
scanf
“这听起来很相似,但Q+A关注的是readline+regex(我想避免)。
How can I use Regex against a TextReader?
没有找到答案(除了chunking),无论如何,我想避免写自己的regex。