【发布时间】:2016-01-29 23:03:45
【问题描述】:
当出现“目录”或“标签”这两个词中的任何一个时,我想停止捕获。
文本案例1:
"...input job: dentist directory job: hygenist </tag>"
文本案例2:
"...input job: dentist</tag>"
牙医是我想要捕捉的。所以基本上我希望正则表达式在“输入作业:”之后开始匹配,并在字符串中出现</tag> 或directory 时停止匹配。这是因为</tag> 或directory 将始终出现在dentist 之后。
我尝试了很多不同的方法。我最接近的是这个(开始匹配并且没有达到结束情况):
(?<=input job: )(\D*)(?= directory| <\/tag>)
如果我只使用其中一种最终情况,则满足文本情况 1:
(?<=input job: )(\D*)(?= directory)
如果我只使用另一种情况,那么 Text case 2 就可以满足:
(?<=input job: )(\D*)(?= <\/tag>)
但是,我想涵盖这两种情况。我认为放置 or 条件(“|”)会起作用,但事实并非如此。
【问题讨论】:
-
这不是一个代码或正则表达式编写服务,您可以在其中发布您的需求,然后有人会制作出符合他们的东西 您自己做了哪些尝试来解决这个问题?请edit 包含您最近所做的努力,并解释它如何没有按您的预期工作。当你这样做时,添加一个标签来指示你正在使用的正则表达式引擎,因为它们之间存在主要的功能和语法差异。
-
@KenWhite 很抱歉没有展示我的尝试,我试图让帖子尽可能清晰。
-
@gp_sflover 我同意,我需要在社区中更加活跃。
标签: regex string-matching