问题标签 [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.
php - 从 MySQL 字符串中动态提取 WHERE 组件
假设我有以下字符串(忘记它是 MySQL 语句):
我需要一种方法来提取 WHERE 子句中的字段名称和值,所以我有一个像这样的数组:
请记住,这是一个动态 MySQL 字符串,所以我不能硬编码姓名、年龄或地址。
我能预见的问题是:
- 查找字段名称时,该函数必须知道所有有效的运算符才能匹配每个字段名称(请参阅下面要使用的数组)
- 不保证空间(例如年龄=21)
- 查找 ' 和 ' 中的值,但当 ' 在字符串中时不中断
- 查找不在 ' 和 ' 中的值,例如数字或其他字段名称(需要单独处理)
有没有人知道如何使用正则表达式或字符串函数来做到这一点?
如果需要,这里是运算符:
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 user
String.Split(',')` 来获取用户输入多个字段的不同字段值。你可以看到这是如何工作的。
但是,有一个问题。莉亚公主(你知道她有多挑剔)坚持在她的爆破器校准记录中使用“:”、“;”和“,”。当她尝试查询这些数据时,我的程序无法理解她的查询。她说,如果不纠正这个问题,死星很快就会摧毁叛军基地。
因此,我请求您帮助建议解析用户输入的良好做法。我怎样才能让我的程序为 Leiah 公主工作?
更新 我将推测我自己问题的答案。当我学习用 C 风格的语言编程时,我了解了“转义序列”,我可以在其中指定字符串文字中通常保留的字符。(例如,一个 " 字符通常终止一个字符串文字,但我可以使用 \" 来“转义”它)我猜想用我的程序做一些类似的事情是个好主意,但我不知道会成为实现它的最佳方式。在准备这次死星袭击之前,我的大部分编程经验都是使用湿气蒸发器的二进制语言,所以这对我来说是新的。
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 中做到这一点
我感谢每一个答案。谢谢
php - 帮助解析格式化字符串
我有字符串:
字符串值永远不会相同,我想从中提取“第二个”值。在这种情况下,17 和 48。
我对正则表达式不是很好,所以我做的解决方法是:
问题是,字符's'存在于 split_str[0] 和 split_str[1] 中,所以我的 $sec 变量不断获得 283,而不是 17。
同样,我对正则表达式不是很好,而且我很确定正则表达式是这种情况下要走的路。请协助。谢谢。
c++ - 简单(主要)变量解析器
在我的一个项目中,我需要能够提供一个非常简单的变量查找和替换解析器(主要用于路径中)。变量主要在启动期间使用,偶尔用于访问文件(不是程序的主要功能,只是加载资源),因此解析器不需要高性能。但是,我非常希望它是线程安全的。
解析器需要能够存储一组变量(map<string, string>
目前)并且能够用字符串中的相应值替换标记。变量值可能包含其他变量,这些变量将在使用变量时解析(而不是在添加时,因为变量可能会随着时间的推移而添加)。
当前的变量语法看起来像:
我当前的解析器使用一对stringstream
s(“output”和“varname”),写入“output”流直到找到第一个 $,“varname”流直到找到第二个 $,然后查找变量(使用)的内容varname.str()
。它非常简单并且运行良好,即使在对变量值进行递归时也是如此。
(错误检查等已删除)
但是,当我尝试将其应用于所需的语法时,该方法失败了。我想要类似于 Visual Studio 用于项目变量的东西:
我也希望能够做到:
递归变量名让我陷入困境,我不确定最好的方法。
目前,我有两个可能的概念:
遍历输入字符串,直到找到 $,查找 ( 作为下一个字符,然后找到匹配的 )(计数进出级别,直到达到正确的关闭参数)。发送该位进行解析,然后使用返回的值作为变量名。但是,这似乎会很混乱并导致大量复制。
第二个概念是使用 a char *
,或者也许char * &
,并将其向前移动,直到我到达一个终止的空值。解析器函数可以在解析变量名称时在递归调用中使用指针。我不确定如何最好地实现这种技术,除了让每个调用跟踪它解析出来的名称,并附加它所做的任何调用的返回值。
该项目只需要在 VS2010 中编译,因此 STL 流和字符串、C++0x 支持的位以及 Microsoft 特定的功能都是公平的游戏(如果这些要求发生变化,最好使用通用解决方案,但此时没有必要观点)。但是,使用其他库并不好,尤其是 Boost。
我的两个想法似乎都比需要的更复杂和混乱,所以我正在寻找一种干净的方式来处理这个问题。非常欢迎讨论如何最好地做到这一点的代码、想法或文档。
.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
android - 在Android中解析具有维度的值
在Android中解析具有维度的值的正确方法是什么?例如,我想int
从以下任何字符串中获取值为 20 的值:20px
, 20mm
, 20dp
.
尝试Integer.parseInt()
并没有让我走得太远,因为它会在非数字字符上引发异常。
php - 如何从“MySQL 创建表”查询字符串中获取列名?
我想在 PHP 中编写一个脚本,将“MySQL 创建表”查询作为字符串并将列名及其数据类型存储在数组中。
例如:
输入字符串:
输出:
我没有直接执行查询的数据库访问权限。是否有任何 PHP 库为此或任何想法?
谢谢
jquery - jQuery:获取html作为用户输入,更新它,并将更新的html返回给用户
我正在尝试创建一个工具来更新用户在 textarea 表单元素中提供的一些 html。我希望用户提供格式良好的 html 表,其中的行可能具有表示奇数行或偶数行的类。我想删除任何现有的类并添加适当的奇数/偶数类。
表单元素:
这是我尝试检索和操作文本的地方。这是行不通的,但我希望有人能理解我的目的:
我在研究中找不到的是如何从表单元素中的字符串创建 DOM 树,然后操作构造的 DOM 树,并将其返回给用户。