Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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_Regex Look Ahead - Fatal编程技术网

Regex 用于排除带有前缀的匹配项的正则表达式

Regex 用于排除带有前缀的匹配项的正则表达式,regex,regex-look-ahead,Regex,Regex Look Ahead,我最初只想匹配第一个实例,但很快意识到这是不可能的。我使用的工具只使用正则表达式,所以我也没有选择 基本上,我得到了一个包含HTML标记的文本,我想在没有以下标记的情况下匹配第一段的标记。 例如: erkfoijwdocndoughwroghpijgoijkuohhogioughwtgpijgoijkuohhogioughwtgpijgoijkuohhogioughwtg 我想匹配第一个 没有别的了。 因此,我想我可以使用负向前看排除旁边有标记的标记。例如: (?!>)(我不确定我是否理解您想要

我最初只想匹配第一个实例,但很快意识到这是不可能的。我使用的工具只使用正则表达式,所以我也没有选择

基本上,我得到了一个包含HTML标记的文本,我想在没有以下标记的情况下匹配第一段的标记。 例如:

erkfoijwdocndoughwrogh

pijgoijkuohhogioughwtg

pijgoijkuohhogioughwtg

pijgoijkuohhogioughwtg

我想匹配第一个

没有别的了。 因此,我想我可以使用负向前看排除旁边有标记的标记。例如:


(?!>)(我不确定我是否理解您想要实现的目标,是否:

^*?


此处演示:

(?s)(?默认情况下,您需要使用lookbehind而不是lookahead正则表达式从左到右查找匹配项。因此,您可以使用*?

并选择第一个匹配项或使用匹配项而不是匹配项(如果您使用的是.net flavor),具体是什么(?s)应该这样做吗?我使用的工具似乎不识别向后看,而只识别向前看。而且我只需要匹配标签,而不是标签中的文本。这在大部分情况下都有效。只是我不想匹配文本,但我只想匹配标签,而不是文本。如果你告诉我您正在使用的hat工具/编程语言,以及您想要实现的最终目标是什么,但不知道这一点很复杂。例如,可变长度lookbehinds将允许一个简单的解决方案,但大多数情况下不受支持。那么您使用的是什么工具,以及您打算如何处理这些和?我使用的是EasyCatalog(AdobeInDesign的插件),它在调用时完全使用RegEx。多亏了你的回答,我才真正解决了我的问题,尽管它并没有准确地回答我的问题。我最后做的只是添加了括号,看起来像这样:
^().*(

然后我就调用了组。我想使用EasyCatalog的内置替换函数将第一个标记替换为InDesign样式的其他标记。它现在可以工作了,但如果出现更准确的答案,我会留下问题的答案!这正是我要建议的(使用组),但我不确定您使用的工具是否允许您这样做。即使您获得了新的解决方案,我也怀疑它们是否会比此解决方案更简单,以便您能够自信地继续使用它!