开发者社区 问答 正文

在特定字符串之后如何捕获任何字符串

我正在尝试捕获后面的所有字符in,at直到该行的末尾。

如何捕获它们,并且不包括在内?

Johen在公园里玩。

返回in the park它应该the park:

text.match(/(?:in|at)\s+([\w\s].*)(\n)/g);

展开
收起
被纵养的懒猫 2019-10-08 17:34:55 317 分享 版权
阿里云 AI 助理回答

您的正则表达式非常接近正确答案,只需要稍作调整即可达到目的。您希望匹配 "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中,上述正则表达式应该能够满足您的需求。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址: