问题标签 [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 投票
3 回答
212 浏览

php - 从 MySQL 字符串中动态提取 WHERE 组件

假设我有以下字符串(忘记它是 MySQL 语句):

我需要一种方法来提取 WHERE 子句中的字段名称和值,所以我有一个像这样的数组:

请记住,这是一个动态 MySQL 字符串,所以我不能硬编码姓名、年龄或地址。

我能预见的问题是:

  • 查找字段名称时,该函数必须知道所有有效的运算符才能匹配每个字段名称(请参阅下面要使用的数组)
  • 不保证空间(例如年龄=21)
  • 查找 ' 和 ' 中的值,但当 ' 在字符串中时不中断
  • 查找不在 ' 和 ' 中的值,例如数字或其他字段名称(需要单独处理)

有没有人知道如何使用正则表达式或字符串函数来做到这一点?

如果需要,这里是运算符:

0 投票
3 回答
579 浏览

c# - 用特殊字符解析用户输入的好习惯?

大家好,我是反邪恶银河帝国的节目作者。现在,我们正准备对死星进行一次大胆的进攻。

我创建了一个庞大的信息数据库,其中包含我们即将袭击死星的 X 翼和 Y 翼战斗机上的飞行员、机器人和系统的信息。由于我们迫切需要快速访问信息,我设计了一个系统,用户可以在其中输入一串文本来指定他们想要检索的数据。

用户可以搜索许多字段。例如,如果用户想查找有关 R2D2 的数据,他可以输入查询“DROID:R2D2”并快速找到该数据。如果他需要红队所有飞行员、机器人和系统的数据,他可以输入“TEAM:RED TEAM”。

但是,该系统旨在处理更复杂的查询。从前面的查询可以看出,数据字段名和数据值是用冒号分隔的:。用户必须能够搜索每个字段的多个值并一次搜索多个字段。

这是我的高级用户的典型查询:“SHIPTYPE:X-WING,Y-WING; LOCATION:docking bay 94; DROIDTYPE:R2”

我对我处理这件事的方式感到非常满意。我使用String.Split(';')读取函数来获取用户选择的三个数据字段的值。我使用String.Split(':') to seperate the data field name from the value, and then I userString.Split(',')` 来获取用户输入多个字段的不同字段值。你可以看到这是如何工作的。

但是,有一个问题。莉亚公主(你知道她有多挑剔)坚持在她的爆破器校准记录中使用“:”、“;”和“,”。当她尝试查询这些数据时,我的程序无法理解她的查询。她说,如果不纠正这个问题,死星很快就会摧毁叛军基地。

因此,我请求您帮助建议解析用户输入的良好做法。我怎样才能让我的程序为 Leiah 公主工作?

更新 我将推测我自己问题的答案。当我学习用 C 风格的语言编程时,我了解了“转义序列”,我可以在其中指定字符串文字中通常保留的字符。(例如,一个 " 字符通常终止一个字符串文字,但我可以使用 \" 来“转义”它)我猜想用我的程序做一些类似的事情是个好主意,但我不知道会成为实现它的最佳方式。在准备这次死星袭击之前,我的大部分编程经验都是使用湿气蒸发器的二进制语言,所以这对我来说是新的。

0 投票
2 回答
2934 浏览

javascript - JavaScript / jQuery 中的字符串解析

我有一个像 url params 这样的字符串。如果保险参数在字符串中只出现一次,我想获得保险价值。

例如:

1.以下字符串应该产生结果:false

?LastName=abc&FirstName=xyz&insurance=2&insurance=3&insurance=4&insurance=5&BirthDate=01-01-2000

2.以下字符串应该产生结果:2 (因为只有一个保险)

?LastName=abc&FirstName=xyz&insurance=2&BirthDate=01-01-2000

我怎样才能在 JavaScript / jQuery 中做到这一点

我感谢每一个答案。谢谢

0 投票
5 回答
130 浏览

php - 帮助解析格式化字符串

我有字符串:

字符串值永远不会相同,我想从中提取“第二个”值。在这种情况下,17 和 48。

我对正则表达式不是很好,所以我做的解决方法是:

问题是,字符's'存在于 split_str[0] 和 split_str[1] 中,所以我的 $sec 变量不断获得 283,而不是 17。

同样,我对正则表达式不是很好,而且我很确定正则表达式是这种情况下要走的路。请协助。谢谢。

0 投票
1 回答
206 浏览

regex - DOM 解析,底层结构化文档遍历

作为一名开发人员,我确信我在这里并不孤单,我总是很想了解什么是“幕后”。对我来说,DOM 解析器是这种好奇心中的佼佼者之一。我们都知道著名的帖子。我什至拼凑了一点“O RLY?” ,出于暂时的需要和好奇。

然而,我满足幕后人员的需求仍未得到满足。DOM 解析器或任何结构化文档解析器如何解析文档?就我的中级 Web 应用程序开发人员的理解而言,它是递归字符串解析和状态保持逻辑的组合,与我自己的骇客尝试不同。

魔法师绝对不能泄露他们的秘密,但说真的,他把兔子藏在哪里了?

0 投票
1 回答
1467 浏览

c++ - 简单(主要)变量解析器

在我的一个项目中,我需要能够提供一个非常简单的变量查找和替换解析器(主要用于路径中)。变量主要在启动期间使用,偶尔用于访问文件(不是程序的主要功能,只是加载资源),因此解析器不需要高性能。但是,我非常希望它是线程安全的。

解析器需要能够存储一组变量(map<string, string>目前)并且能够用字符串中的相应值替换标记。变量值可能包含其他变量,这些变量将在使用变量时解析(而不是在添加时,因为变量可能会随着时间的推移而添加)。

当前的变量语法看起来像:

我当前的解析器使用一对stringstreams(“output”和“varname”),写入“output”流直到找到第一个 $,“varname”流直到找到第二个 $,然后查找变量(使用)的内容varname.str()。它非常简单并且运行良好,即使在对变量值进行递归时也是如此。

(错误检查等已删除)

但是,当我尝试将其应用于所需的语法时,该方法失败了。我想要类似于 Visual Studio 用于项目变量的东西:

我也希望能够做到:

递归变量名让我陷入困境,我不确定最好的方法。

目前,我有两个可能的概念:

遍历输入字符串,直到找到 $,查找 ( 作为下一个字符,然后找到匹配的 )(计数进出级别,直到达到正确的关闭参数)。发送该位进行解析,然后使用返回的值作为变量名。但是,这似乎会很混乱并导致大量复制。

第二个概念是使用 a char *,或者也许char * &,并将其向前移动,直到我到达一个终止的空值。解析器函数可以在解析变量名称时在递归调用中使用指针。我不确定如何最好地实现这种技术,除了让每个调用跟踪它解析出来的名称,并附加它所做的任何调用的返回值。

该项目只需要在 VS2010 中编译,因此 STL 流和字符串、C++0x 支持的位以及 Microsoft 特定的功能都是公平的游戏(如果这些要求发生变化,最好使用通用解决方案,但此时没有必要观点)。但是,使用其他库并不好,尤其是 Boost。

我的两个想法似乎都比需要的更复杂和混乱,所以我正在寻找一种干净的方式来处理这个问题。非常欢迎讨论如何最好地做到这一点的代码、想法或文档。

0 投票
2 回答
4053 浏览

.net - .NET 用户代理解析

比较不同浏览器的以下用户代理字符串:

IE8

Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;WOW64;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;.NET4。 0C;InfoPath.3;.NET4.0E)

火狐 3

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16

铬 10

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16


我看到 Firefox 和 Chrome 在显示浏览器名称方面存在一致性(在上面的示例中以粗体显示),但是 IE 在字符串中完全不同的位置显示它...... HttpBrowserCapabilitiesBase 类如何解析这个字符串?以及如何使用此解析器(或自定义解析器)来处理 Wurfl 存储库?(例如,在 Win mobile 上使用时,我在存储库中的任何地方都找不到 User_agent="IE6")

这些是对象中 .NETHttpBrowserCapabilitiesBase类的变量Request

IE8

火狐 3

铬 10

0 投票
2 回答
498 浏览

android - 在Android中解析具有维度的值

在Android中解析具有维度的值的正确方法是什么?例如,我想int从以下任何字符串中获取值为 20 的值:20px, 20mm, 20dp.

尝试Integer.parseInt()并没有让我走得太远,因为它会在非数字字符上引发异常。

0 投票
6 回答
2435 浏览

php - 如何从“MySQL 创建表”查询字符串中获取列名?

我想在 PHP 中编写一个脚本,将“MySQL 创建表”查询作为字符串并将列名及其数据类型存储在数组中。

例如:

输入字符串:

输出:

我没有直接执行查询的数据库访问权限。是否有任何 PHP 库为此或任何想法?

谢谢

0 投票
1 回答
523 浏览

jquery - jQuery:获取html作为用户输入,更新它,并将更新的html返回给用户

我正在尝试创建一个工具来更新用户在 textarea 表单元素中提供的一些 html。我希望用户提供格式良好的 html 表,其中的行可能具有表示奇数行或偶数行的类。我想删除任何现有的类并添加适当的奇数/偶数类。

表单元素:

这是我尝试检索和操作文本的地方。这是行不通的,但我希望有人能理解我的目的:

我在研究中找不到的是如何从表单元素中的字符串创建 DOM 树,然后操作构造的 DOM 树,并将其返回给用户。