如何将正则表达式转换为extglob表达式?

时间:2014-09-25 15:46:04

标签: java regex extglob

我想将正则表达式转换为glob

我正在寻找jakarta oro但我无法找到适合我需要的方法。它编译正则表达式并返回其等效的

它们都是Type-3语法,所以理论上它应该是可能的。

我不幸使用JDK5。

1 个答案:

答案 0 :(得分:0)

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一样。

相关问题