Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
贪婪的消极落后(在Swift中)_Swift_Regex - Fatal编程技术网

贪婪的消极落后(在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(?),请参阅。