我想将正则表达式转换成 glob
我在看 jakarta oro但我找不到适合我需要的方法。它编译正则表达式并返回其等效的 glob
都是Type-3文法,理论上应该可以。
不幸的是,我在使用 JDK5 时受到了限制。
最佳答案
extglob 可以匹配许多正则表达式结构(pattern-list
是一个变更列表):
extglob regex
-------------- -----------------
? [^/]
* [^/]*
. \.
** .
?(pattern-list) (pattern-list)?
*(pattern-list) (pattern-list)*
+(pattern-list) (pattern-list)+
@(pattern-list) (pattern-list)
!(pattern-list) (?!pattern-list)
据我所知,在 extglob 中也有一些正则表达式不能做的事情:
?????????????? [^abc]
?????????????? \1
?????????????? most look arounds
假设正则表达式中的所有构造都具有 extglob 等效项,则可以将其转换为 extglob 形式。这会很困难,因为正则表达式由 CFG 表示。而您使用的是 Java,这会迫使您使用邪恶的转义符 \\
。
为什么不使用支持正则表达式的不同 bash 实用程序呢?喜欢this .
关于java - 如何将正则表达式转换为 extglob 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26042753/