具有Or条件的正则表达式?

jon*_*ney 0 java regex

是否可以在正则表达式中创建OR条件.

我试图找到一个匹配包含这种类型的模式的文件名列表

第一个案例

xxxxx-hello.file
Run Code Online (Sandbox Code Playgroud)

或第二个案例

xxxx-hello-unasigned.file
Run Code Online (Sandbox Code Playgroud)

这个reg> -hello.file在第一种情况下工作正常,但是他们也可以检查第二种情况吗?

我不想创建两个正则表达式,并希望尽可能结合这两种情况.

谢谢.

Jos*_*ber 7

使组可选:

.*-hello(-unasigned)?[.]file
Run Code Online (Sandbox Code Playgroud)

如果性能存在问题,则应将该组设置为非捕获组:

.*-hello(?:-unasigned)?[.]file
Run Code Online (Sandbox Code Playgroud)

如果您希望它只匹配那些确切数量的字符,您应该为OR案例使用管道:

.{5}-hello[.]file|.{4}-hello-unasigned[.]file
Run Code Online (Sandbox Code Playgroud)

  • 如果您还使用捕获组,则可能需要为可选组使用非捕获组:`(?: - unassigned)? (2认同)