Tag: 解析

如何validation“日期和时间”字符串是否只有时间?

我有一个字符串变量存储可能是完整日期或部分日期: 1)完整日期:12/12/2010 12:33 AM 2)部分日期:上午12:33(仅限日期字段) 我试图找出解析字符串的最佳方法,以确定字符串是否缺少日期字符串。 原因是,在我的代码中如果缺少日期,我将在字符串中附加一个默认日期(例如1/1/1900)。 请记住,时间可能是各种格式。 更新 – 我对这个问题的具体答案。 正如所有“post”所述,这个问题有多个答案,这最终是我用过的,希望它可以帮助其他人*: public DateTime ProcessDateAndTime(string dateString) { string dateAndTimeString = dateString; string[] timeFormats = new string[] { “hh:mm tt”, “hh:mm:ss tt”, “h:mm tt”, “h:mm:ss tt”, “HH:mm:ss”, “HH:mm”, “H:mm” }; // check to see if the date string has a time only DateTime dateTimeTemp; if (DateTime.TryParseExact(dateString, […]

“词汇的正则表达式”(语义替换) – 任何示例语法和库?

我正在寻找合成示例或常用技术,在给定过程语言的情况下对单词而不是字符进行正则表达式样式转换。 例如,要跟踪复制,可能需要创建具有相似含义但具有不同单词选择的文档。 我希望能够简明地定义我可以应用于文本流的这些可能的转换。 例如。 “快速名词 ”改为“快速名词 ”,但“ 走得快 ”。 不会被改变(之后没有名词。 或者:“爱丽丝会唱歌”到“ 歌曲将由爱丽丝演唱” 我希望这可以在语法检查器中完成,例如检测被动语态。 这种语言处理的AC#实现非常简洁,但我认为任何努力的大部分都是正确的规则 – 保持规则清晰易懂似乎是一个开始的地方。

在C#中快速解析PHP

我需要在C#中解析PHP文件。 我们基本上要求另一个国家的一些开发人员上传PHP文件,一旦上传,我们需要检查php文件并获取所有方法和类/函数等的列表。 我想过使用一个正则表达式,但如果一个函数属于一个类等我就无法进行锻炼,所以我想知道是否已经有了’那里’会解析PHP文件并吐出它的函数(我正在尝试避免写一个完整的AST实现)。 有谁有想法吗? 我看了Coco / R但是找不到PHP语法文件。 我正在使用.NET 2.0和C#。

Double.TryParse()忽略NumberFormatInfo.NumberGroupSizes?

我想知道我是否遗漏了某些东西……我正在按照标准的英国文化运作。 Double result = 0; if (Double.TryParse(“1,2,3”, NumberStyles.Any, CultureInfo.CurrentCulture, out result)) { Console.WriteLine(result); } 预期的产出将毫无意义……“1,2,3”不应该解析为双倍。 不过确实如此。 根据.NET 2.0 MSDN文档 AllowThousands表示数字字符串可以有组分隔符; 例如,将数百个与数千个分开。 有效的组分隔符由NumberFormatInfo的NumberGroupSeparator和CurrencyGroupSeparator属性确定,每个组中的位数由NumberFormatInfo的NumberGroupSizes和CurrencyGroupSizes属性确定。 允许数千包含在NumberStyles.Any中。 对于我的文化,NumberGroupSizes是3。 这只是Double.Parse中的一个错误吗? 似乎不太可能,但我无法发现我做错了什么……

寻找C#代码解析器

我正在寻找一组类(最好在.net框架中),它将解析C#代码并返回带有参数,类及其方法,属性等的函数列表。理想情况下,它将提供构建我自己所需的所有内容。智能感知。 我觉得这样的东西应该在.net框架中,考虑到它们提供的所有reflection内容,但如果没有,那么开源替代方案就足够了。 我正在尝试构建的内容基本上类似于Snippet Compiler,但有一点扭曲。 我想弄清楚如何首先获得代码dom。 我试着谷歌搜索,但我不确定这是什么正确的术语,所以我空了。 编辑:因为我希望将它用于类似intellisense的处理,实际编译代码将无法工作,因为它很可能是不完整的。 对不起我应该先提到。

解析HTML文档:正则表达式还是LINQ?

尝试解析HTML文档并提取一些元素(文本文件的任何链接)。 当前的策略是将HTML文档加载到字符串中。 然后找到文本文件的所有链接实例。 它可以是任何文件类型,但对于这个问题,它是一个文本文件。 最终目标是拥有一个IEnumerable字符串对象列表。 这部分很简单,但解析数据是个问题。 Blah Here is your first text file: Here is your second text file: Here is your third text file: Here is your fourth text file: Thanks for visiting! 最初的方法是: 将字符串加载到XML文档中,并以Linq-To-Xml方式对其进行攻击。 创建一个正则表达式,查找以href=开头,以.txt结尾的字符串 问题是: 那个正则表达式是什么样的? 我是一个正则表达式的新手,这是我的正则表达式学习的一部分。 您将使用哪种方法提取标签列表? 这将是最高效的方式? 哪种方法最易读/可维护? 更新:在HTML Agility Pack建议中向Matthew致敬。 它工作得很好! XPath建议也适用。 我希望我能将这两个答案都标记为“答案”,但我显然不能。 它们都是解决问题的有效方法。 这是一个使用Jeff建议的正则表达式的C#控制台应用程序。 它读取字符串很好,并且不包括任何未以.txt结尾的href。 使用给定的示例,它正确地.txt.snarg结果中包含.txt.snarg文件(在HTML字符串函数中提供)。 using System; […]

C#:HtmlDocument对象没有构造函数?

那是怎么回事? 看来获取正在运行的HtmlDocument对象的唯一方法是复制mshtml / webbrowser控件的Document属性。 但产卵是sloooooooooooow。 我想避免编写自己的HTML解析器,HtmlAgilityPack是copyleft。 是否有其他来源获取实例化的HtmlDocument,我可以将HTML从字符串转储到? 或者,当使用带有img标签和tr元素的InnerHtml / OuterHtml时,有没有办法覆盖HtmlElement令人讨厌的习惯? 编辑:我指的是System.Windows.Forms.HtmlDocument。 我很抱歉,我还是C#和.Net的新手,对COM以及本主题带来的其他一些事情知之甚少。

如何管理解析DateTime的空对象以与ADO.NET一起用作DBNULL

我有两个DateTime对象,BirthDate和HireDate。 它们被正确格式化为字符串,当我将它们传递给我的数据访问层时,需要将它们解析为DateTime对象。 DateTime hD = DateTime.Parse(hire); DateTime bD = DateTime.Parse(birth); //incase of a datestring being passed through dateStringPassed = “7/2/1969″; 但有时候,字符串hire和birth是空的或空的”” ,如果代码是这样运行的,我从解析空字符串得到一个FormatException错误。 如何管理空分析并允许DateTime(如果为空或null)被接受为DBNull.Value ? 我仍然无法管理用户没有通过DateTime字符串,然后解析崩溃了我的代码。 我的出生日期参数如下,如果为null则检查变量,然后使用DBNull.Value。

如何在运行时检测Column数据类型,同时使用标头解析CSV文件

我正在使用FileHelpers加载CSV数据,(信用 – 搜索时找到了这个答案/搜索结果)。 用户浏览目录,选择带有标题的文件,然后上传进行解析。 我的问题是 – 它们是一次性文件,其cols / classes / types以前不知道 。 问题 :如何在解析时检测列的数据类型? 搜索后我发现了一个名为public Type RecordType的函数{ get; } 它提供了记录类型..我需要帮助来获取记录中的Col数据类型。 var fNengine = new FileHelperEngine(); var fNrecords = engine.ReadFile(“AttendeesByEvents.csv”); // How to get the Col types? // HeaderText = typeof(..*notKNown*).GetCsvHeader(); //..var headers = fNrecords.HeaderText(); //foreach (var header in headers) // Console.WriteLine(header.RecordType() + `\n`); 我也在SO上找到了这个答案,但@ shmap00提到的运行时助手或者他所指的帮助不再存在,我也查看了源代码树。 […]

如何检测以数字结尾的字符串

我试图解析一个字符串,在某些情况下,最后有一个额外的“ – [某个数字]”。 例如, 而不是显示 Technologist 表明 Technologist – 23423 我不想只是检查或拆分“ – ”,因为还有其他名称,其中有“ – ” 任何人都可以想到一个清除方式来消除这些额外的噪音,所以: 技术专家 – 23423解决了技术专家