Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex-组名等于,直到下一个连字符(如果有)为止,如果没有,则转到末尾_Regex - Fatal编程技术网

Regex-组名等于,直到下一个连字符(如果有)为止,如果没有,则转到末尾

Regex-组名等于,直到下一个连字符(如果有)为止,如果没有,则转到末尾,regex,Regex,我正在使用正则表达式对Omniture中的代码进行分类 我需要找到一种方法,让我的比赛小组进入下一个小组-如果有,但如果没有,则进入最后一个小组 这是跟踪代码的一个示例 KNC-GUK-FUK-GEN-SUP-MRO-ARALDITE-MRO 我当前的正则表达式为(未按预期工作) 所以它需要有KNC和SUP-,我需要在下一次催眠后捕捉单词,在本例中是ARALDITE 编辑代码可以是KNC-GUK-FUK-GEN-SUP-MRO-ARALDITE,这就是我遇到问题的原因 我只想澄清一下,我需要的是

我正在使用正则表达式对Omniture中的代码进行分类

我需要找到一种方法,让我的比赛小组进入下一个小组-如果有,但如果没有,则进入最后一个小组

这是跟踪代码的一个示例

KNC-GUK-FUK-GEN-SUP-MRO-ARALDITE-MRO

我当前的正则表达式为(未按预期工作)

所以它需要有KNCSUP-,我需要在下一次催眠后捕捉单词,在本例中是ARALDITE

编辑代码可以是KNC-GUK-FUK-GEN-SUP-MRO-ARALDITE,这就是我遇到问题的原因

我只想澄清一下,我需要的是Match Group名称中的文本,而不仅仅是Match本身

有没有办法做到这一点

如果您能提供任何帮助,我们将不胜感激

谢谢


Shani

这与ARALDITE结束前的一切都匹配:

knc-(.+)SUP-[^-]+-[^-]+
其中,最后的
[^-]+
仅与ARALDITE匹配。恐怕我不太清楚您尝试的其他部分是想做什么,或者您想做什么捕获,但希望您能从这一点着手,找到最终的解决方案

[^-]
只匹配任何非连字符的内容,因此当然
[^-]+
匹配到字符串结尾或遇到连字符为止。

如何

KNC-.*?SUP-.*?-(.*?)-
解释:确保“KNC-”存在,并在任何时候后跟“SUP-”,然后跳到下一个“-”,并捕捉到(不包括)以下“-”


关于

Hi,它并不总是有另一个连字符,因此代码可以是KNC-GUK-FUK-GEN-SUP-MRO-ARALDITE,它不会拉though@user3207116:将其更改为
KNC-.*SUP-.*-(\w*)
,所有单词字符都会被捕捉到连字符或字符串的结尾。您好,这很好,但我需要像阿德拉利特那样的团队,而不是这样。谢谢though@user3207116-我想你可能只是想知道最后的
[^-]+
-正如我所说的,这是与
匹配的部分,但我不完全确定你想做什么。啊,我现在明白了。它工作得很好。非常感谢:)
KNC-.*?SUP-.*?-(.*?)-