我有这个正则表达式,它是一个例子:
/par(tir|te|s)|(quitter.*maison)|((heure|quand).*(rendez-vous|journée))/i
我想把它拆分为" |"在正则表达式中,但此字符不能位于爆炸的括号内。所以预期的结果必须是:
1: par(tir|te|s)
2: (quitter.*maison)
3: ((heure|quand).*(rendez-vous|journée))
我的思绪陷入困境,有人可以帮助我吗?
答案 0 :(得分:0)
在this old question的大力帮助下,我能够构建this regex。它将括号与其内容相匹配,包括前面的文字:
(?:\w+)?\((?:[^()]*|\((?:[^()]*|\([^()]*\))*\))*\)
但是我必须说嵌套括号很难处理正则表达式。
答案 1 :(得分:0)
你可以拆分这个正则表达式,它可以精确地实现你从提供的输入样本中指定的输出:
/\|(?!(?:\w+\|?)+\))/ig
答案 2 :(得分:0)
您可以尝试使用此正则表达式/\|(?![^\(]*\))/g
const str = '/par(tir|te|s)|(quitter.maison)|((heure|quand).(rendez-vous|journée))/i';
console.log(str.split(/\|(?![^\(]*\))/g));