【发布时间】:2020-10-27 15:53:12
【问题描述】:
这是一个类似于我要匹配的字符串(为了简单起见,除了几个特定的模式)。
Hello, tonight I'm in the town of Trenton in New Jersey and I will be staying in Hotel HomeStay [123] and I have no money.
我正在尝试仅匹配最后一个 in Hotel HomeStay [123]。
我现在对前瞻和后瞻等正则表达式概念不太熟悉。这里的类似问题似乎无法解决我的问题。我尝试了一堆正则表达式(据我所知),这就是我想出的(?= (?:in|\d+))([\w \[]*\s*\d*\]*)(?!.*in)。数字和特殊字符可能是我实际尝试匹配的部分。
lookahead 和lookbehind 模式不限于仅包含in。它们也可以有更多常用词,例如and 和is。我只是在寻找其中任何一个的最后一次出现,然后是非常独特的主要模式 - edit 假设匹配必须包含HomeStay 或LuxuryInn,为了这个例子。
但是,这匹配整个in the town of Trenton in New Jersey and I will be staying in Hotel HomeStay [123]。
我哪里错了?另外,有人可以解释为什么 in 尽管被置于非捕获组中,但仍被捕获?
非常感谢任何帮助。
【问题讨论】:
-
正则表达式无法实现您想要实现的目标。对不起!
-
@Ava 哦,那真是太糟糕了。如果有帮助,我编辑了我的原始帖子以添加更多细节。是否有任何其他工具可以用于此目的?
标签: regex regex-lookarounds regex-group