因此,下面是我的正则表达式,用于匹配“定义”或“定义”之后的单词:
((?<=define |define: )\w+)
这一部分工作得很好。但当我添加它也应该匹配{}之间的单词的部分时,如果可以,它将匹配所有内容。
((?<=define |define: )\w+)|([^{][A-Z]+[^}])
我注意到的一件事是,当我一开始添加^时,{然后它毁了一切,我不明白为什么。
发布于 2019-06-23 20:32:10
您正在使用被否定的字符类,就像我们使用正后视(?<=)
和正前视(?=)
一样。它们从根本上是不同的,并且与后视或前视相反,字符类使用字符。
因此:
[^{][A-Z]
匹配前面有{
以外的字符的大写字母。[A-Z][^}]
匹配后跟}
以外的字符的大写字母。因此,如果您尝试用正则表达式[^{][A-Z]+[^}]
匹配{OO}
中的字母,那么正则表达式将不匹配任何内容是完全正常的,因为您有两个字母,一个前面是{
,另一个后面是}
。
https://stackoverflow.com/questions/56723437
复制相似问题