草庐IT

c# - 改进/修复 C 样式 block 注释的正则表达式

我正在(用C#)编写一个简单的解析器来处理一种看起来很像经典C的脚本语言。在我的一个脚本文件中,我用来识别/*block注释*/的正则表达式进入了某种无限循环,占用了100%的CPU多年。我使用的正则表达式是这样的:/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+/关于为什么这可能被锁定有什么建议吗?或者,我可以改用什么正则表达式?更多信息:使用面向.NET3.5的C#3.0;我正在使用Regex.Match(string,int)方法在字符串的特定索引处开始匹配;我已经让程序运行了一个多小时,但比赛还没有完成;传递给Regex构造函数的选项是Regex

c# - 如何在 C# 中解析 HTTP url?

我的要求是解析HttpUrls并相应地调用函数。在我当前的实现中,我使用嵌套的if-else语句,我认为这不是一种优化的方式。你能推荐一些其他有效的方法吗?网址是这样的:服务器/func1server/func1/SubFunc1server/func1/SubFunc2server/func2/SubFunc1server/func2/SubFunc2 最佳答案 我认为您可以从System.Uri中得到很多用处类(class)。为它提供一个URI,您可以按照多种排列方式提取片段。一些例子:UrimyUri=newUri("http

c# - 防止字符串转换为 Null 失败的最佳方法

_callReportCode=reader["CallReportCode"].ToString();我正在尝试处理调用ToString的对象为NULL的可能性。我将使用带有多个变量的上述语句,我不想​​为每个变量单独尝试/捕获...对字符串进行空值检查的最佳方法是什么。其他数据类型我一直这样做:int.TryParse(reader["AccountNumber"].ToString(),out_accountNumber);在此代码中,“reader”指的是SqlDataReader,但这对这个问题来说并不重要。 最佳答案 使

c# - Double.TryParse() 输入小数点分隔符与系统小数点分隔符不同

我有一个使用点(".")作为小数点分隔符的源XML,我在使用逗号(",")作为小数点分隔符的系统上解析它。因此,值0.7被Double.TryParse或Double.Parse解析为7000000。正确解析的选项有哪些?其中之一是使用String.Replace('.',',')用逗号替换源中的点,但我认为我不太喜欢这个。 最佳答案 XML标准明确规定了日期和数字等格式。这有助于确保XML独立于平台且可互操作。看看使用XmlConvert用于xml数据。doublevalue=XmlConvert.ToDouble(stringV

C#/.NET 词法分析器生成器

我正在为C#/.NET寻找一个体面的词法扫描器生成器——它支持Unicode字符类别,并生成一些可读性和高效的代码。有人知道吗?编辑:我需要支持Unicode类别,而不仅仅是Unicode字符。目前仅Lu(Letter,Uppercase)类别就有1421个字符,我需要非常具体地匹配许多不同的类别,而不是手写它所需要的字符集。此外,实际代码是必须——这排除了生成二进制文件然后与驱动程序(即GOLD)一起使用的东西编辑:ANTLR还不支持Unicode类别。有一个openissue不过,它可能会在某一天满足我的需求。 最佳答案 GPL

c# - 解析 C# 代码(作为字符串)并插入其他方法

我有一个正在开发的C#应用程序,它可以远程加载它的代码,然后运行它(为了论证,您可以假设该应用程序是安全的)。代码是C#,但它作为XML文档发送,解析为字符串,然后编译和执行。现在,我想做的-比我预期的要困难一些-能够解析整个文档,并在编译之前,在每行执行后插入额外的命令。例如,考虑以下代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;namespaceMyCode{staticclassMyProg{staticvoidRun(){inti=0;i++;Log(i);}}}我想要的,在解析之后更像是:usi

c# - 使用 C# 解析和执行公式

我正在寻找一个开源库来解析和执行C#中的公式/函数。我想创建一堆从接口(interface)(即IFormulaEntity)派生的对象,这些对象将具有属性/方法/值,并允许用户为这些对象指定公式。例如,我可能有publicclassEmployee:IForumulaEntity{publicdoubleSalary{get;set;}publicvoidSendMessage(stringmessage)}然后允许应用程序用户编写类似的内容;Employeeperson=if(person.Salary>1000)person.Salary+=1000;person.SendMes

c# - 使用 .NET 约会的最佳方式?

我正在从我的页面返回一个字符串,我想确保它是一个日期。这是我目前所拥有的(有效),我只想知道这是否是“最佳”方法。我正在使用.NET4。intTheMonth=0;intTheDay=0;intTheYear=0;DateTimeNewDate;varTheIncomingParam=Request.Params.Get("__EVENTARGUMENT").ToString();char[]TheBreak={'/'};string[]TheOutput=TheIncomingParam.Split(TheBreak);try{TheMonth=Convert.ToInt32(The

c# - Httplistener 和文件上传

我正在尝试从我的网络服务器检索上传的文件。当客户端通过网络表单(随机文件)发送其文件时,我需要解析请求以获取文件并进一步处理它。基本上,代码如下:HttpListenerContextcontext=listener.GetContext();HttpListenerRequestrequest=context.Request;StreamReaderr=newStreamReader(request.InputStream,System.Text.Encoding.Default);//thisistheretrievedfilefromstreamreaderstringfile=

c# - 解析 IIS 日志文件 - 是否有 LogParser 的替代方案

我需要解析IIS日志文件。是否有任何LogParser的替代品,一个用于查询日志文件的简单类?我只需要知道我在2个日期之间收到了多少请求。这是iis日志文件的示例:#Software:MicrosoftInternetInformationServices7.5#Version:1.0#Date:2014-08-2612:20:57#Fields:datetimes-sitenames-computernames-ipcs-methodcs-uri-stemcs-uri-querys-portcs-usernamec-ipcs-versioncs(User-Agent)cs(Cooki