问题标签 [string-parsing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - Win32:如何将字符串转换为日期?
在 Windows 中,我想使用精确的格式字符串将 a 解析string
为 a 。date
例如,给定字符串
和格式:
我想将字符串转换为日期,同时确保日期与格式匹配。
我还需要能够指定 Y2K 滑动窗口,pivot。这意味着如果(正确)输入了 2 位数的年份,我将指定未来我认为该年份的年数。例如:
.NET 已经提供了一个DateTime.ParseExact
功能,它几乎完全符合我的需要:
除了我不能告诉它 100 年的枢轴值。
更多示例:
我知道 Windows 没有将字符串转换为日期的本机 API。
是否有任何已建立的代码可以使用格式说明符将 a 转换string
为 a ?date
计算机已经存在了一段时间。一定有人已经解决了这个问题。
以下是您可能会在 Windows 中看到的一些示例格式说明符的列表:
M/d/yyyy
M/d/yy
M/dd/yyyy
M/dd/yy
MM/d/yyyy
MM/d/yy
MM/dd/yyyy
MM/dd/yy
d/M/yyyy
d/M/yyy
d/MM/yyyy
d/MM/yy
dd/M/yyyy
dd/M/yy
dd/MM/yyyy
dd/MM/yy
yyyy/M/d
yy/M/d
yyyy/MM/d
yy/MM/d
yyyy/MM/dd
yy/MM/dd
dd MM yyyy
dd.MM.yyyy
也可以看看
- MSDN:日、月、年和时代格式图片
- MSDN:LOCALE_SSHORTDATE
- Stackoverflow:将字符串格式化为日期
- Stackoverflow:在 Win32 中从字符串中解析日期
- MSDN:DateTime.ParseExact 方法(字符串、字符串、IFormatProvider)
- Stackoverflow:在 PHP 中将字符串转换为日期
c - c语言中的指针和字符串解析
我想知道是否有人可以向我解释指针和字符串解析的工作原理。我知道我可以循环执行以下操作,但我仍然不太了解它是如何工作的。
例如,我试图从字符串中获取最后一个整数。如果我有一个字符串const char *str = "some string here 100 2000";
使用上面的方法,我如何解析它并获取字符串的最后一个整数(2000),知道最后一个整数(2000)可能会有所不同。
谢谢
.net - C# 无法将 NaN 解析为双精度
在日本的 Windows PC 上,这行 C# 会引发格式异常:
这条线在我的美国电脑上运行良好
不知道从哪里开始解决这个问题。有什么想法吗?
在此先感谢,吉姆
java - Java 获取查询字符串
所以我试图捕获getQueryString() 的一个特定部分。我知道我可以尝试并解析字符串以获得我想要的特定部分,但希望能够抓住我需要的部分。
这是我的查询结果:
我只是想捕捉这部分:Ntt=info
该=info
部分将更改为所请求的搜索内容。
我已经完成了很多 API 请求功能,但没有找到任何适合我的东西。
我只需要解析它吗?
sql-server - 将两个字段合并为一个,仅包含新项目
我有两个表,它们都包含“管道分隔值”
例如:
表格1:
表 2:
我需要将表 2 合并到表 1 中,以便表 2 包含两个表中的所有项目。
以编程方式执行此操作将是一个简单的问题,即遍历表 2 中的每个项目,如果表 1 中不存在,则将其添加到表 1。
这如何在 SQL 中作为存储过程来完成?
c++ - How to read formatted data in C++?
I have formatted data like the following:
It's in a text file and I'm using ifstream to read it, but how do I separate the number and the word? The word will only consist of alphabets and there will be certain spaces or tabs between the word and the number, not sure of how many.
string-parsing - 我必须解析复杂的字符串格式。实施自动机是一种明智的方法吗?
我目前正在努力解决我必须解析的特别令人讨厌的字符串格式。字符串可以包含表示必须解析的变量属性的子字符串。想象一下类似的东西"ThisExampleStringContainsA[VARIABLE_PROPERTY]"
。此外,这些属性可以任意嵌套,并且它们可以具有不同的含义,具体取决于上下文。如果[VARIABLE_PROPERTY]
实际上不是变量的有效名称(当然必须在运行时确定),它只是成为整个字符串的正常部分,并且保持不变和逐字记录。接下来,没有无效的字符串,因为左方括号的数量不需要与右括号的数量匹配!This]Is[A[Valid]]][ExampleToo!
. 还有更多规则,但这会给你一个想法。
所以,目前我不确定如何处理这个问题。我的第一次尝试以一堆令人难以置信的 if 和 else 告终,我越来越注意到解决方案应该适当地包含某种状态概念。现在,我越来越多地考虑使用自动机来做到这一点。但是,我遇到的自动机只是纯粹的理论构造。我从来没有遇到过实际的实现。此外,自动机传统上用于验证单词,即确定它是否属于正式定义的语言。不用说,我很难对这种语言做出正式的定义。
你会如何处理这个问题?你认为实际实现自动机是一种理智的方法吗?您将如何从 OO 设计的角度对此进行建模?该项目在 C# 中,如果这有什么不同的话。你会建议一些完全不同的东西吗?
/Edit:我的描述可能有点误导,这里有一些详细信息:对我来说,问题是以正确的顺序(从最里面到最外面)找到属性。一旦你确定了下一个要解析的属性,用它的最终值进行实际替换就相对容易了。
让我们以上面的例子为例,我会给你一个逐步的例子来说明应该发生的事情。完整的输入字符串是:This]Is[A[Valid]]][ExampleToo!
第一个右括号和最后一个左括号只是普通字符,因为它们不包含任何内容。对于不在匹配括号对之间的所有字符也是如此。这给我们留下了部分[A[Valid]]]
。必须首先解决最里面的属性,即[Valid]
. 方括号只是将属性标识字符串括起来,Valid
我们将要解析的属性名称也是如此。比方说,这个字符串实际上确实标识了一个属性,并且它被替换为它的实际值,比方说Foo
。包括括号在内的标识字符串被替换,因此[Valid]
变为Foo
. 现在,我们必须看看[AFoo]]
. 让我们假设AFoo
没有标识一个属性,它使子字符串保持不变(包括括号)。最后,后面的第二个右括号AFoo
没有匹配的左括号,因此也只是一个字符。处理完成后,整个字符串将显示为:This]Is[AFoo]][ExampleToo!
我希望这个例子能让事情更清楚一点。请记住,我在这里简化了字符串格式!这只是给你一个想法,我面临什么困难。我不期望工作代码,我正在寻找可以让我了解如何解决问题的答案。由于必须对数千个字符串进行此解析,因此解决方案必须具有某种合理的性能。
java - 按模式将文本脚本拆分为子字符串
考虑以下脚本(在伪语言中完全是胡说八道):
你将如何从中获取 if-block 的参数和内容?if 块的格式为:
我尝试使用String.split()
正则表达式模式,^if\s*\(|\)\s*\{|\}\s*
但这失败了。即,问题在于) {
内部 if-block 中也发现了该问题,并且在}
许多地方也发现了关闭。我认为懒惰或急切的扩张在这里都行不通。
所以......任何指向我在这里可能需要什么才能用正则表达式实现它的指针?
我还需要在没有 if-block 代码的情况下获取剩余的字符串(所以代码从 开始else { ...
)。使用 justString.split()
似乎很困难,因为没有关于被解析部分的长度的信息。
我最初为此创建了一个基于循环的解决方案(String.substring()
大量使用),但它很乏味。我想要一些更高级的东西。我应该使用正则表达式还是创建一个自定义的通用函数(除此之外还有许多其他情况),它采用可解析的字符串和模式(考虑if<whitespace>(...
上面的模式)?
编辑:更改返回变量赋值,否则没有意义。
javascript - Javascript数学解析器库
Javascript中有一个好的数学解析器吗?我希望能够解析如下内容:
谢谢,
javascript - 在 JavaScript / jQuery 中,将带逗号的数字转换为整数的最佳方法是什么?
我想将字符串“15,678”转换为值 15678。方法parseInt()
和parseFloat()
都为“15,678”返回 15。是否有捷径可寻?