问题标签 [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.

0 投票
8 回答
93768 浏览

ruby - Ruby 中的安全整数解析

我有一个字符串,比如说'123',我想将它转换为整数123

我知道你可以简单地做some_string.to_i,但这会转换'lolipops'0,这不是我想要的效果。当我尝试转换无效的东西时,我希望它在我的脸上炸开,带有美好而痛苦的Exception. 否则,我无法区分有效0和根本不是数字的东西。

编辑:我正在寻找没有正则表达式技巧的标准方法。

0 投票
77 回答
1918869 浏览

regex - 如何使用正则表达式验证电子邮件地址?

多年来,我慢慢开发了一个正则表达式,可以正确验证大多数电子邮件地址,假设它们不使用 IP 地址作为服务器部分。

我在几个 PHP 程序中使用它,并且它大部分时间都可以工作。但是,有时有人在使用它的网站遇到问题时联系我,我最终不得不进行一些调整(最近我意识到我不允许使用四字符TLD)。

您拥有或见过的用于验证电子邮件的最佳正则表达式是什么?

我已经看到了几种使用使用几个较短表达式的函数的解决方案,但我宁愿在一个简单的函数中使用一个长而复杂的表达式,而不是在一个更复杂的函数中使用几个短表达式。

0 投票
6 回答
2115 浏览

regex - 如何根据文件名将文件排序到目录?

我有大量的文件要按照一些糟糕的约定对所有文件进行排序。
这里有些例子:

(4)_mr__mcloughlin____.txt
12__sir_john_farr____.txt
(b)mr__chope____.txt
dame_elaine_kellett-bowman____.txt
dr__blackburn__.txt

这些名字应该是不同的人(说话者)。另一个 IT 部门的某个人使用一些脚本从大量 XML 文件中生成了这些文件,但正如您所见,命名非常愚蠢。

我需要为每个人使用多个文本文件对数以万计的这些文件进行排序;每个都有一些愚蠢的东西使文件名不同,无论是更多的下划线还是一些随机数。它们需要按扬声器分类。

使用脚本来完成大部分工作会更容易,然后我可以返回并合并应该使用相同名称或其他名称的文件夹。

我有很多方法可以考虑这样做。

  • 解析每个文件中的名称并将它们分类到每个唯一名称的文件夹中。
  • 从文件名中获取所有唯一名称的列表,然后查看此简化的唯一名称列表中的相似名称,并询问它们是否相同,一旦确定这一点,它将相应地对它们进行排序。

我打算使用 Perl,但如果值得的话,我可以尝试一门新语言。我不确定如何将目录中的每个文件名一次读入一个字符串以解析为实际名称。我也不完全确定如何在 perl 中使用正则表达式进行解析,但这可能是可搜索的。

对于排序,我只是要使用 shell 命令:

但只是因为这就是我所知道的,所以这是最简单的。

我什至不知道我要做什么的伪代码想法,所以如果有人知道最佳的动作顺序,我会全神贯注。我想我正在寻找很多帮助,我愿意接受任何建议。非常感谢任何可以提供帮助的人。

B.

0 投票
1 回答
507 浏览

perl - 是否有将 c99 十六进制浮点表示法转换为常规表示法的 Perl 模块?

是否有一个内置库可用于将 c99 样式的浮点表示法(例如:0x1.0p23f)转换为使用 Perl 的常规浮点数(反之亦然)?

0 投票
4 回答
1022 浏览

floating-point - Jython:将文本解析为包含逗号的浮点数

如何将从工作表扫描的浮点数解析为包含逗号的文本?

更新:对不起,我不清楚。我正在使用 jython 2.5,它没有 locale 模块。

0 投票
3 回答
4957 浏览

javascript - 如何在不包含令牌的字符串上调用 split(token) 而不会导致错误?

我的 HTML 标记中有两种类型的字符串作为元素的 ID:

日期:

和季节名称:

日期用破折号分隔月份和日期。

季节是一个词,没有其他标记。

我想将月份或季节分配给一个名为的新变量:

如果我这样做:

它会在几个月内工作,但如果我在不包含令牌的季节名称上调用它,它会产生错误吗?

这样做的安全方法是什么?

0 投票
5 回答
4628 浏览

c++ - 如何正确解释数字(十六进制、八进制、十进制)

我正在尝试编写一个程序,该程序接受十六进制、八进制和十进制的输入,将它们存储在整数变量中,并将它们与转换为十进制形式一起输出。例如:

用户输入:0x43、0123、65

程序输出:

所以很明显我需要一种方法来解释这些数字,但我不知道如何去做。我尝试了各种方法,例如将它们读入函数并将它们转换为字符串,反之亦然(参见此处的代码示例),但解释数字总是需要转换为某种格式,从而破坏原始输入。

我唯一能想到的就是重载一个一次读取一个字符的 >> 运算符,如果它在输入的开头看到 0x 或 0,那么它将整个输入存储到一个字符串中,然后再将其读入一个 int。然后程序将不得不在输出期间以某种方式确定正确的操纵器。

不知道是否有更简单的方法来做到这一点,任何帮助表示赞赏。

编辑:这已经解决了,但如果有人感兴趣,我决定发布代码。

0 投票
7 回答
21216 浏览

c++ - 如何从字符串中获得无符号长整数?

从 C++ 中的字符串中检索无符号长整数的最安全和最好的方法是什么?

我知道许多可能的方法。

首先,转换取自 atol 的有符号长整数。

一个明显的问题是,当存储在 myStr 中的值大于有符号的 long 可以包含的值时会发生什么?atol 检索什么?

下一种可能性是使用 strtoul。

但是,这对于我的需求来说有点过于复杂。我想要一个简单的函数,字符串输入,无符号长基数 10 输出。此外,错误处理还有很多不足之处。

我发现的最后一种可能性是使用 sscanf。

同样,错误处理还有很多不足之处,而且比我想要的要复杂一些。

剩下的显而易见的选择是编写我自己的包装器,或者围绕先前的可能性之一,或者在字符串中循环并手动转换每个数字直到达到 ULONG_MAX 的东西。

我的问题是,我的 google-fu 找不到的其他选项是什么?C++ std 库中的任何东西都可以将字符串干净地转换为无符号长整数并在失败时抛出异常?

如果这是一个骗局,我深表歉意,但我找不到任何与我完全匹配的问题。

0 投票
3 回答
10026 浏览

c# - 如何从此字符串中获取日期?

我有这个字符串:

我想将日期(加粗)提取为更可用的格式,例如 06-10-2009 15:38:16

解决此问题的最佳方法是什么?

0 投票
2 回答
137 浏览

algorithm - 多遍解析字符串的编程习惯

我正在开发一个盲文翻译库,我需要将一串文本翻译成盲文。我计划分多次执行此操作,但我需要一种方法来跟踪字符串的哪些部分已翻译,哪些未翻译,因此我不会重新翻译它们。

我总是可以创建一个类来跟踪已处理的字符串中的位置范围,然后设计我的搜索/替换算法以在后续传递中忽略它们,但我想知道是否没有更优雅的方法完成同样的事情。

我想多遍字符串翻译并不少见,我只是不确定这样做的选项是什么。