我有一个引用书目文件,其中包含示例条目,如下所示:
@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)应该如何查找所有不带空格的大写字母?
最佳答案
请注意,(?=[A-Z])([A-Z\s]+)
首先确保当前位置右侧紧邻一个大写 ASCII 字母,然后匹配(消耗) 1 个或多个大写 ASCII 字符或空白字符。它将匹配 Alice
中的 A
,因为 A
满足先行限制并匹配字母。由于模式末尾没有字边界,因此返回有效的匹配 A
。它还会匹配 SAPS II(带有尾随空格),因为 \s
匹配空格,而 +
会贪婪地抓取所有连续的大写字母字母和空格。
可以在 SublimeText3 中找到由 2 个或多个大写字符组成的所有完整单词的正则表达式是
\b[[:upper:]]{2,}\b
查看截图:
详细信息
\b
- 前导字边界[[:upper:]]{2,}
- 2 个或更多大写字母\b
- 尾随单词边界。
关于regex - 如何查找全部大写字母且不含空格的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46051893/