【发布时间】:2019-10-25 06:07:11
【问题描述】:
我正在尝试使用正则表达式字符串来快速查找所有强制展开的情况。这将在整个代码库中搜索所有带有感叹号的单词。但是,我已经拥有的正则表达式包含了我试图排除的变量的隐式声明。
这是我已有的正则表达式。
(:\s)?\w+(?<!as)\)*!
而且效果很好。它搜索“variableName!”、“(variableName)!”、“hello.hello!”。排除强制铸造也有效。它避免了诸如“hello as!UIView”之类的情况,但我也试图排除其他情况,例如“var hello:UIView!”其中有一个感叹号。这就是我遇到的问题。我尝试了负前瞻和负后瞻,但没有解决这种情况。
这是我正在处理的示例正则表达式
(:\s)?\w+(?<!as)\)*!
这就是结果
testing.(**test)))!**
Details lists capture **groups!**
hello as! hello
**Hello!**
**testing!**
testing**.test!**
Hello != World
var noNetworkBanner**: StatusBarNotificationBanner!** <-- need to exclude
"var noNetworkBanner**: StatusBarNotificationBanner!**" <-- need to exclude
【问题讨论】:
-
试试
(?<!:\s)\b\w+(?<!\bas)\b\)*!,见this demo。 -
很好用!谢谢你。感谢您的帮助
标签: swift regex xcode subtraction negate