如何找到没有空格的全大写字母的单词?

时间:2017-09-05 09:46:21

标签: regex sublimetext3

我有一个带有示例条目的参考书目文件,如下所示:

@article{le1993new,
  title={A new simplified acute physiology score (SAPS II) based on a European/North American multicenter study},
  author={Le Gall, Jean-Roger and Lemeshow, Stanley and Saulnier, Fabienne},
  journal={Jama},
  volume={270},
  number={24},
  pages={2957--2963},
  year={1993},
  publisher={American Medical Association}
}

我希望在这种情况下使用正则表达式查找带有大写字母的所有单词“SAPS”和“II”。以下正则表达式未找到所需的单词:

(?=[A-Z])([A-Z\s]+)

正则表达式(对于ST3)应该如何找到没有空格的所有大写字母?

1 个答案:

答案 0 :(得分:1)

请注意,(?=[A-Z])([A-Z\s]+)首先确保在当前位置的右侧有一个大写的ASCII字母,然后匹配(消耗)1个或多个字符,这些字符是大写的ASCII字符或空格字符。它将与A中的Alice匹配,因为A符合前瞻限制并匹配字母。由于模式末尾没有单词边界,因此返回有效匹配A。它还会匹配SAPS II(带有尾随空格),因为\s匹配一个空格,而+将贪婪地抓取所有连续的大写字母和空格。

一个正则表达式,它将找到包含2个或更多个可在SublimeText3中工作的大写字符的整个单词

\b[[:upper:]]{2,}\b

见截图:

enter image description here

<强>详情

  • \b - 领先的单词边界
  • [[:upper:]]{2,} - 2个或更多大写字母
  • \b - 一个尾随字边界。