正则表达式与大写匹配与排除

car*_*ing 2 regex bash grep

我正在尝试为以下情况提出一个正则表达式:我需要找到grep用于以下路径的任何匹配路径:

  • 包括所有大写匹配路径.例:

    COM /富/酒吧/ 1.2.3-SNAPSHOT /酒吧-1.2.3-SNAPSHOT.jar

    注意资金BBar.

  • 排除仅包含SNAPSHOT且不包含其他大写字母的所有大写匹配路径.例:

    COM /富/酒吧/ 1.2.3-SNAPSHOT /条,1.2.3-SNAPSHOT.jar

这有可能grep吗?

and*_*lrc 5

这样的事情可能会:

grep -vE '^([^[:upper:]]*(SNAPSHOT)?)*$'
Run Code Online (Sandbox Code Playgroud)

分解:

-v将反转匹配(显示所有不匹配的行.-E启用扩展正则表达式.

^                             # Start of line
 (                        )*  # Capturing group repeated zero or more times
  [^[:upper:]]*               # Match all but uppercase zero or more times
               (SNAPSHOT)?    # Followed by literal SNAPSHOT zero or one time
                            $ # End of line
Run Code Online (Sandbox Code Playgroud)