如何减少正则表达式的长度
How to reduce the length of regular expression
我正在使用以下正则表达式,我需要在保持相同行为的同时减少其长度。
^\s*(John|Matt|Oliver|Tom)\s*(\|\s*(John|Matt|Oliver|Tom)\s*)*$
表达式验证“|”特定名称的分隔列表。
- KD
由于您有 PCRE 正则表达式,请使用 subroutine call (?1)
以免重复整个第 1 组子模式:
^\s*(John|Matt|Oliver|Tom)\s*(\|\s*(?1)\s*)*$
^^^^
参见regex demo。
我正在使用以下正则表达式,我需要在保持相同行为的同时减少其长度。
^\s*(John|Matt|Oliver|Tom)\s*(\|\s*(John|Matt|Oliver|Tom)\s*)*$
表达式验证“|”特定名称的分隔列表。
- KD
由于您有 PCRE 正则表达式,请使用 subroutine call (?1)
以免重复整个第 1 组子模式:
^\s*(John|Matt|Oliver|Tom)\s*(\|\s*(?1)\s*)*$
^^^^
参见regex demo。