我正在尝试构建一个解析字符串并跳过括号中的内容的正则表达式。
就像是
string = "A bc defg hi [hi] jkl mnop.";
.match() 应该返回“hi”而不是 [hi]。我已经花了 5 个小时在 RE 中运行,但我认输了。
如果这很重要,这也适用于 javascript 或 jquery。
任何帮助表示赞赏。我也在努力让我的问题格式正确:)
编辑:
好的,我刚刚有一个灵光乍现的时刻,并发现我使用的原始 RegExp 确实有效。但是当我用 [matches] 替换匹配项时,它只是替换了字符串中的第一个匹配项......一遍又一遍。我认为这是我的正则表达式拒绝跳过括号,但在尝试了下面几乎所有的解决方案后,我意识到我在贬低 Hardcore。
当 .replace 发挥它的魔力时,它是在第一场比赛中,所以我很简单地在结果词的末尾添加了一个空格,如下所示:
var result = string.match(regex);
var modifiedResult = '[' + result[0].toString() + ']';
string.replace(result[0].toString() + ' ', modifiedResult + ' ');
这让它停止定位字符串中的原始单词,并停止在每次匹配时为其添加一组新的括号。感谢大家的帮助。我将把答案归功于那个促使我朝着正确方向前进的帖子。