可以使用什么分隔符将字符串解析为正则表达式列表?

时间:2014-01-30 15:46:22

标签: regex

我需要转换输入字符串,它是由一些分隔符分隔的实际regexp数组。 输出 - 是字符串列表,其中每个字符串都是来自输入的正则表达式。

问题是我应该使用哪个分隔符来确保我会收到正确的值。 因为似乎regexp字符串可以包含任何字符集,在这种情况下,我需要决定什么应该更适合用作分隔符。 感谢。

3 个答案:

答案 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会回答你的问题。