首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从包括第一个和最后一个单词在内的多行中提取文本?

如何从包括第一个和最后一个单词在内的多行中提取文本?
EN

Stack Overflow用户
提问于 2019-09-11 05:53:51
回答 2查看 218关注 0票数 0

我试图从一篇长文中提取部分内容,比如有关照料植物的信息。案文包含段落和空白行。我无法捕捉到我想要的具体文本,第二个问题是,最后一个词没有显示在提取的文本中,最后一个问题是,当我的搜索从行的开头开始时。

我试着搜索想要提取的文本,方法是使用一个不在行首的单词,它起作用了,只是想要的文本的末尾少了一个单词,如果这个单词在新行上,它根本不会显示任何结果。我用匹配测试

//开始搜索的第一个单词是“如何”。我也想捕捉它//我想要结束的第二个单词是‘(可选的):’

代码语言:javascript
运行
复制
'/(?=How to).*?\s(?=\(optional\):)/'

我用来测试的示例文本是:

//文本出现在此之前。 浅谈切叶植物的护理 裂叶植物,也被称为monstera deliciosa或瑞士奶酪植物,是一种大型的、受欢迎的、易于照料的室内植物,并不是真正的植物家庭中的植物。人们对这种植物的名称有很大的混淆;这些年来,各种名称变得千变万化。 以下是更多信息(可选): //还有更多的文本在这里

我想从单词“如何”(可选)结束时提取所有的文本。不管中间有多少行或段落

预期提取的文本:

浅谈切叶植物的护理 裂叶植物,也被称为monstera deliciosa或瑞士奶酪植物,是一种大型的、受欢迎的、易于照料的室内植物,并不是真正的植物家庭中的植物。人们对这种植物的名称有很大的混淆;这些年来,各种名称变得千变万化。 以下是更多信息(可选):

谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-09-11 06:19:13

这很容易。您可以使用以下模式:

https://regex101.com/r/TjE2x8/2

模式:^How to[\w\W]+?\(optional\):$

票数 0
EN

Stack Overflow用户

发布于 2019-09-11 07:15:08

模式:^How to(?:.|\R)*optional\):$

基于regex101的演示

解释:

  • ^匹配How to出现在行首的第一个实例
  • (?: )非捕获组。我们需要它,因为下面的OR指令是管道|。但我们不需要捕捉内容。这就是为什么我们在第一个括号之后使用?:的原因。
  • .每个字符
  • |
  • \R每一种新线
  • *确保对组的每个实例捕获零
  • optional\):$将单词optional与括号(转义,因为它不是指令) \)和文本$末尾的冒号:匹配。

模式2:/^How to.*optional\):$/ms

基于regex101的演示

这种模式甚至更简单,但需要设置ms标志以匹配多行,而.字符类则需要匹配新行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57882913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档