|
|
1
0
答案主要取决于您想做多少编码和您想依赖多少库之间的平衡——如果您的应用程序可以依赖于其他库,您可以使用许多正则表达式库中的任何一个库——例如,所有Linux/Unix风格的posix regex。 或 如果您只需要这些特定的语法,我将使用字符串标记器(strtok)——在“*”上拆分,在“”上拆分——然后处理每种情况。 |
|
2
2
我不会仅仅为此而重新提出一个完整的lex/yacc解析器。您所描述的内容可以适用于一个简单的正则表达式:
如果您有一个支持捕获的regex引擎,那么很容易提取您需要的单个信息。(最可能出现在捕获1、3和4中)。 如果我理解您的意思,您可能会希望同时检查捕获1和捕获4不是非空的。 如果您需要进一步拆分搜索词,可以在随后的步骤中解析捕获3。 即使没有regex,我也会手工编写一个函数。它比处理lex/yacc要简单,我想你可以把比正则表达式更有效的东西组合起来。 |
|
|
3
0
在这种情况下,strtok方法会更好,因为要解析的命令数量很少。 |
|
Ben · 统计向量中的单词在字符串中出现的频率 1 年前 |
|
|
bear_525 · 从列中删除中间名和首字母,并保存在单独的列中 1 年前 |
|
|
asdfadf · 为什么具有相同内存值的字符串和整数打印方式不同? 1 年前 |
|
|
user764754 · 防止多行原始字符串文字中出现新行字符 1 年前 |
|
|
Bogaso · 从列表中返回与模式匹配的元素 1 年前 |
|
|
Jasco · 如何使用VBA提取两个相似字符之间的字符串中的单词? 1 年前 |