我需要转换输入字符串,它是由一些分隔符分隔的实际regexp数组。 输出 - 是字符串列表,其中每个字符串都是来自输入的正则表达式。
问题是我应该使用哪个分隔符来确保我会收到正确的值。 因为似乎regexp字符串可以包含任何字符集,在这种情况下,我需要决定什么应该更适合用作分隔符。 感谢。
答案 0 :(得分:3)
在@ Theox answer的基础上,三+
在正则表达式中无效,假设您希望这些值是有效的正则表达式,可以用作分隔符。
regex1+++regex2+++regex3
如果正则表达式以+
或双+
结尾,则您连续有4个或5个+
个字符。但是,由于正则表达式不能以+
开头,因此您知道最后三个+
个字符代表分隔符。例如,
a+++++b
代表两个正则表达式:a++
和b
。
请注意,双+
在正则表达式中有效,第二个+
为possessive quantifier,因此我们不能仅使用两个+
个字符作为分隔符。< / p>
答案 1 :(得分:1)
你说它是一个输入字符串,我假设你能够操纵它。 为什么不使用双重字符作为分隔符?例如,我认为你的正则表达式中不会使用双分号,或者三倍。
regex1;;regex2;;regex3
然后
regexString.split(";;", regexString);
答案 2 :(得分:0)
我认为您可以使用双+
作为分隔符。
在正则表达式中似乎不可能有一个双+
,因为它是一个量词,必须进行转义以匹配该字符。
所以regexp1++regexp2++regexp3
可以正常使用。
编辑:在看到Rangi Keen的评论之后:两个+
是不够的,因为它仍然有效,但有三个+
(或更多)应该这样做!
regexp1+++regexp2+++regexp3
会回答你的问题。