我在excel中使用此正则表达式代码在段落中找到所需的文本:
=RegexExtract(B2,"(bot|vehicle|scrape)")
此代码将成功返回所有3个单词(如果在段落中找到它们),我想做的额外工作是使正则表达式返回所需的粗体文本,以及前面几个单词和3个单词在所选单词的后面。
文字示例:
A car (or automobile) is a wheeled motor vehicle used for transportation.
Most definitions of car say they run primarily on roads, seat one to eight people,
have four tires, and mainly transport people rather than goods.
示例输出:
a wheeled motor **vehicle** used for transportation
我希望文本的一部分出现,以便接收者能够更容易地确定文本的位置。
非常感谢任何替代方法。
答案 0 :(得分:2)
您可以使用
=RegexExtract(B2,"(?:\w+\W+(?:\w+\W+){0,2})?(?:bot|vehicle|scrape)(?:\W+\w+(?:\W+\w+){0,2})?")
详细信息:该模式包含在捕获括号中,以使REGEXEXTRACT
实际上提取出您需要的符合以下模式的字符串:
(?:\w+\W+(?:\w+\W+){0,2})?
-单词的可选序列,后跟非单词字符,后跟零,1个或两个重复的1+个单词字符,然后是1+个非单词字符(?:bot|vehicle|scrape)
-一个bot
,vehicle
或scrape
的字词(?:\W+\w+(?:\W+\w+){0,2})?
-可选的顺序,依次是1+个非单词字符,然后是1+个单词字符,后跟零,一或两个重复的1+个非单词字符,然后是1+个单词字符。Google Spreadsheets测试: