【问题标题】:parsing a string in javascript with regex用正则表达式解析javascript中的字符串
【发布时间】:2011-10-18 07:13:52
【问题描述】:

我正在尝试使用某些关键字解析 javascript 中的字符串并将结果存储在数组中。例如,我希望将字符串“coconutmilk”解析为 [coconut,milk]。但是,我还有其他关键字,例如“on”和“nut”。我想防止数组被解析为 [coc, on, ut, milk] 或 [coco, nut, milk]。我允许数组存储不在我的密钥列表中的值。

我认为正则表达式是可行的方法,但到目前为止我运气不佳。非常感谢您提供的任何帮助。

【问题讨论】:

  • 搜索 nut 为什么不匹配 nut?
  • 我对你的正则表达式方法非常感兴趣,因为我无法想象如何做到这一点。
  • Ghommey - 因为我正在寻找最大的匹配。也许另一个例子会清楚。对于数学函数,输入 arccos14 应解析为 arccos14,而不是某个值 arc 乘以 cos(14)。
  • Felix Kling - 回到椰奶的例子,我的第一个想法是使用搜索和替换更高优先级的词,正如 RobG 提到的那样。所以“coconutmilk”变成了“[coconut]milk”,但我不知道如何避免搜索括号外的区域。删除定位的字符串可能更容易,但我不知道如何最好地保留其顺序。

标签: javascript regex parsing


【解决方案1】:

将您的关键字按优先顺序放入一个数组中(如果您希望 coconutnut 之前匹配,请在数组中给它一个较低的索引)。然后在找到匹配项时删除它们,这样它们就不会作为子字符串再次匹配。

【讨论】:

  • 但是如何保持字符的原始顺序。例如,如果我去掉椰子,我怎么知道它最初与牛奶的关系在哪里?
猜你喜欢
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多