贪婪的消极落后(在Swift中)
我需要一个如下所示的正则表达式: 匹配(以下语句中贪婪的消极落后(在Swift中),swift,regex,Swift,Regex,我需要一个如下所示的正则表达式: 匹配(以下语句中foo()的任何部分): foo() arg:foo() foo() (arg:foo()){} 不匹配: @foo() 我目前有以下问题,但存在一些问题: ^\s*?(? ^\s*?在行首包含任何空格,这意味着arg:foo()与foo()位不匹配。我必须包含此项才能使@查找正常工作 (?是一个查找,用于在匹配对象()之前的@时放弃匹配 (\w+?)\(正确匹配部分内容(),前提是前面没有@ 如果正则表达式中没有^\s*?,则其行为
foo()
的任何部分):
foo()
arg:foo()
foo()
(arg:foo()){}
@foo()
^\s*?(?
^\s*?
在行首包含任何空格,这意味着arg:foo()
与foo()
位不匹配。我必须包含此项才能使@
查找正常工作
(?是一个查找,用于在匹配对象()之前的@
时放弃匹配
(\w+?)\(
正确匹配部分内容(
),前提是前面没有@
如果正则表达式中没有^\s*?
,则其行为部分正确,但不应发生这种情况。它应该完全放弃匹配(而不仅仅是一个字符):
如果前面有任何@
,则它必须完全放弃匹配,尽管它必须正确匹配:@Mode foo()
(foo()
位,忽略前面的@Mode
)
如果有什么建议可以帮助我,那就太棒了!使用
(?
看
解释
--------------------------------------------------------------------------------
(?可能添加一个单词边界(?或\b(?),请参阅。