【发布时间】:2014-05-22 10:19:15
【问题描述】:
如果是字符串,我必须在单个正则表达式中检查 :
- 包含 substring-1
- 不包含 substring-2
不管两个子串的位置。
- “substring-2 bla bla bla substring-1”:不匹配
- "substring-1 bla bla bla substring-2": 不匹配
- “substring-2 bla bla bla substring-1 bla bla substring-2”:不匹配
- “bla bla bla substring-1 bla bla”:匹配
我一直在尝试使用 lookaorund 表达式,但无法检查 substring-2 是在 substring-1 之后还是之前。
(?<!substring-2.*)(?!.*substring-2)substring-1
如果 substring-2 不在 substring-1 之前和之后,则此表达式将适合我的情况。因此,如果 substring-2 出现在正则表达式之前和之后都可以工作,但如果只出现在之后或之前将不起作用。
如何将其转换为 OR 条件,以便将 lookaorund 表达式组合成 OR?
注意:输入字符串将是多行的,因此它可以包含换行符。
注意:正则表达式必须与 .NET 兼容
【问题讨论】:
-
是否需要检查整个字符串是否符合您的要求,或者实际检索
substring-1? -
我需要取回 substring-1
-
输入字符串将是多行的:您需要在每一行还是整个字符串上检查
substring-2? -
substring-2 不应位于整个多行字符串中的任何位置。
标签: .net regex regex-lookarounds