我在 Excel 中使用此正则表达式代码来查找段落中所需的文本:
=RegexExtract(B2,"(bot|vehicle|scrape)")
如果在段落中找到所有 3 个单词,此代码将成功返回所有 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
我希望显示一部分文本,以便接收者能够更轻松地查明文本的位置。
非常感谢任何替代方法。
最佳答案
您可以使用
=RegexExtract(B2,"(?:\w+\W+(?:\w+\W+){0,2})?(?:bot|vehicle|scrape)(?:\W+\w+(?:\W+\w+){0,2})?")
请参阅regex demo和 Regulex graph :
详细信息:该模式用捕获括号括起来,以使 REGEXEXTRACT
实际提取满足以下模式的所需字符串:
(?:\w+\W+(?:\w+\W+){0,2})?
- 可选的单词序列,后跟非单词字符,后跟零,一到两次重复 1+ 个单词字符,然后重复 1+ 个非单词字符(?:bot|vehicle|scrape)
-bot
、vehicle
或scrape
单词 <(?:\W+\w+(?:\W+\w+){0,2})?
- 1+ 个非单词字符的可选序列,然后是 1+ 个单词字符零次、一次或两次重复 1+ 个非单词字符,然后重复 1+ 个单词字符。
Google 电子表格测试:
关于正则表达式:在所选文本前面包含 3 个单词,在后面包含 3 个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55490328/