我正在尝试捕获后面的所有字符in,at直到该行的末尾。
如何捕获它们,并且不包括在内?
Johen在公园里玩。
返回in the park它应该the park:
text.match(/(?:in|at)\s+([\w\s].*)(\n)/g);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您的正则表达式非常接近正确答案,只需要稍作调整即可达到目的。您希望匹配 "in" 或 "at" 后面的所有字符直到行尾,但不包括 "in" 或 "at" 本身。这里是一个修改后的正则表达式示例,它会做到这一点:
text.match(/(?:in|at)\s+(\w[\w\s]*)$/g);
解释一下这个正则表达式的各个部分: - (?:in|at)
是一个非捕获组,用来匹配 "in" 或 "at",但不会被捕获到结果中。 - \s+
匹配至少一个空白字符(如空格)。 - (\w[\w\s]*)
是一个捕获组,\w
匹配任何单词字符,后面跟着的 [\w\s]*
匹配任意数量的单词字符或空白字符。这将捕获第一个单词及之后的所有内容直到行尾。 - $
表示字符串的结束位置,确保我们只匹配到每一行的末尾。
这样,您就能得到想要的结果,即 "in the park" 中的 "the park" 部分。注意,根据您的具体需求和使用的编程语言环境,可能需要对正则表达式做适当调整。在JavaScript中,上述正则表达式应该能够满足您的需求。