【发布时间】:2016-10-02 05:07:07
【问题描述】:
仅当字符串的第一个实例后跟另一个字符串时,我才尝试返回匹配项。但是它们可能稍后会出现,但我不想要匹配。
Thing #1
.........
hidden=true
.........
Thing #2
.........
hidden=false
.........
现在我正在使用Thing #1[\S\s]*?hidden=false,但很明显,当我不想要它时,它会返回上述示例的匹配项。仅当第一个 hidden= 后跟 false 时。我知道如何使用捕获组来完成,但这对我来说会使事情变得非常复杂,我在 Android 上使用 Tasker,捕获组是一个巨大的考验并且速度很慢。我该怎么做?
【问题讨论】:
-
如何找到第一次出现的 "hidden=" 并检查它后面的字符串是真还是假。正则表达式似乎有点矫枉过正。
-
@Kelvin 这可能不是第一次出现。我关心在“Thing #1”之后的第一次出现。稍后这些将混合在一起,我也会对其他的感兴趣。
-
然后找到“Thing #1”的索引,然后从“Thing #1”的索引之后找到第一个出现的“hidden=”。
-
@Kelvin 鉴于我正在使用 Tasker,这已经比仅使用缓慢而复杂的捕获组更复杂。
-
嗯,如果捕获组很慢,那么前瞻将更加令人担忧:)