我正在尝试匹配除以 .bmp 结尾的所有文件。
由于某些限制,我不能使用否定(?:,!:)和引用(\ 1,...)。
我做了一个表达式,它适用于大多数字符串:
^\w+\.([^b].*|b|b[^m].*|bm|bm[^p].*|bmp.+)$
它匹配不以 .bmp 结尾的所有内容 - 包括 test.txt、test.bmp.txt 等。但不幸的是,它确实允许 test.bi.bmp。
关于如何改进正则表达式以使其仅匹配不以 .bmp 结尾的文件的任何想法?
我正在尝试匹配除以 .bmp 结尾的所有文件。
由于某些限制,我不能使用否定(?:,!:)和引用(\ 1,...)。
我做了一个表达式,它适用于大多数字符串:
^\w+\.([^b].*|b|b[^m].*|bm|bm[^p].*|bmp.+)$
它匹配不以 .bmp 结尾的所有内容 - 包括 test.txt、test.bmp.txt 等。但不幸的是,它确实允许 test.bi.bmp。
关于如何改进正则表达式以使其仅匹配不以 .bmp 结尾的文件的任何想法?
/^.+\.([^b][^.]*|b|b[^m][^.]*|bm|bm[^p][^.]*|bmp[^.]+)$/
只需确保“bmp”之前的点是最后一个点
不太优雅但有效:
^.*([^b][^m][^p]|b[^m][^p]|[^b]m[^p]|[^b][^m]p|bm[^p]|[^b]mp)$