首页 > 解决方案 > 查找以特定单词开头的最长行

问题描述

在我的项目中,我尝试查找具有最长方法名称的事件。

例如

private function anyVeryLongMethodName($param ...);

public function anyEvenLongerMethodName()

protected function ...()

我已经找到了类似的东西

^.{100,}$

这不会准确显示最长的匹配,但在玩计数时会给出一个可管理的结果集

不幸的是,它不考虑从public/private/protected function

是否有合适的正则表达式来完成这项工作?

标签: regex

解决方案


您可以使用此正则表达式来匹配以某些关键字开头且长度为 100 或更多的函数名称:

\b(?:public|private|protected)\s+function\s+(\w{100,})\s*\(

正则表达式演示

正则表达式详细信息:

  • \b: 字边界
  • (?:public|private|protected):匹配三个单词之一
  • \s+: 匹配 1+ 个空格
  • function: 匹配文本function
  • \s+: 匹配 1+ 个空格
  • (\w{100,}): 匹配捕获组 #1 中的 100 个或更多单词字符
  • \s*\(: 匹配 0+ 个空格,后跟一个(

推荐阅读