好吧,我有问题要重复工作,更别说我想要的工作方式了.
我将带来一个包含以下信息的字符串
NETWORK;PASS;1;THIS TEXT|CAN BE|RANDOM|WITH|PIPE|SEPERATORS;\r到目前为止我拥有的
(?:NETWORK;.*;(?:0|1);)([^|]*)这就让我找到了第一个匹配的块
THIS TEXT我要做的是设置它,这样我就可以编程地指定要匹配的块。与管道分开的文本将有3-7“块”,视情况而定,我可能需要匹配其中的任何一个,但一次只能匹配一个。
我想过要复制
([^|]*)并且添加一个非匹配的操作符,除了一个,但是如果我复制这个组,我似乎不能让它匹配任何东西,我也不能让重复操作符在这个组上工作。
我有点迷茫,所以如果需要澄清的话,这可能没有什么意义,我会根据要求提供。任何帮助都是非常感谢的。
发布于 2014-06-03 18:14:37
为什么不直接在管道符号上拆分THIS TEXT|CAN BE|RANDOM|WITH|PIPE|SEPERATORS呢?比动态生成的正则表达式容易得多。
但是,如果您真的想生成正则表达式:
(?:NETWORK;.*;(?:0|1);)开始(?:[^|]+[|]){n} (用要跳过的数字替换n ),然后是([^|]+)示例:
(?:NETWORK;.*;(?:0|1);)(?:[^|]+[|]){3}([^|]+)

在您的示例中匹配WITH。这是一个regex101演示。
https://stackoverflow.com/questions/24022045
复制相似问题