所以基本上我有一段单词,并且有三种可能的模式来标记该段落的结尾,例如 regex1、regex2 和 regex3 全部采用/.*?(?=something)/格式。如果段落中不存在这些内容,我将返回整个段落。如果全部存在,我想匹配第一个正则表达式之前的单词。假设这是输入:
word word word word regex3 word word word regex2 word word regex1
在这种情况下我想返回前四个单词。如果是:
word word word word regex1 word word word regex3 word word regex2
在这种情况下我仍然想返回前四个单词
另一个可能的输入可能是:
word word regex1 word word word regex1 word regex2 regex3
在这种情况下,我只需要前 2 个单词
我能想到的一种“令人讨厌”的方法是执行一大堆嵌套的 if else,但这需要很长时间才能让我的程序运行。有什么想法吗?
请您参考如下方法:
奇怪的情况,但我会做的是根据正则表达式分割你的字符串(我会将它们全部组合成一个正则表达式),然后返回结果数组中的第一个字符串
所以类似
thestring.split(/regex1|regex2|regex3/)[0]
如果你的正则表达式又长又粗,你可能可以链接上面的内容并仍然得到相同的结果
thestring.split(/regex1/)[0].split(/regex2/)[0]...etc