regex - 匹配一行中的第 n 个单词
问题描述
在我使用的应用程序中,我无法选择匹配组 1。
我可以使用的结果是来自正则表达式的完全匹配。
但我需要第 5 个单词“jumps”作为匹配结果,而不是完整匹配“The quick brown fox jumps”
^(?:[^ ]*\ ){4}([^ ]*)
The quick brown fox jumps over the lazy dog
解决方案
由于您需要整个匹配仅是第 n 个单词,因此您可以尝试使用“positive lookbehind”,它允许您仅匹配某些内容,如果它前面有其他内容。
要仅匹配第五个单词,您需要匹配前面有四个单词的第一个单词。
匹配四个单词(即单词字符后跟一个空格字符):
(\w+\s){4}
匹配单个单词,但前提是它前面有四个其他单词:
(?<=(\w+\s){4})(\w+)
推荐阅读
- java - 无法使用 JWT 将文件上传到盒子 - curl: (26) 创建表单数据失败
- php - 正则表达式捕获任何内容和任何空格或换行符
- c - 用gcc修改补丁认证程序
- c# - 如何使用 Winium Desktop c# 复制、粘贴、删除文件或文档
- laravel - 个人访问令牌 - Laravel
- python - TensorFlow 中 session.run() 执行时间增加
- r - 在一个 ggplot 图中使用不同长度的刻度
- javascript - 如何避免在javascript中等待地狱
- powershell - Powershell Core中的“对象引用未设置为对象的实例”
- rust - 遍历对 Chars 的引用