- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想将正则表达式转换成 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/
鉴于这些文件: $ ls file1 file2 file21 file3 fileFoo 我期待这种通配模式(启用 extglob 的 bash): $ ls file?({1..2}|Fo
我正在尝试使用参数扩展来转义括号。虽然如果我启用了 extglob,但以下代码不起作用: #!/usr/bin/env bash shopt -s extglob foo='file(2)' foo=
打开extglob,我想匹配一个变量 *( )x* (在正则表达式中:/^ *x.*/) 这个: main(){ shopt -s extglob local line=' x bar'
假设我有以下目录结构 ./testdir ./testdir/a.c ./testdir/b.c ./testdir/testdir2/ ./testdir/t.tar 假设我的 CWD 是 test
我想将正则表达式转换成 glob 我在看 jakarta oro但我找不到适合我需要的方法。它编译正则表达式并返回其等效的 glob 都是Type-3文法,理论上应该可以。 不幸的是,我在使用 JDK
我有以下 Dockerfile FROM python:3.9-slim-buster ## DO SOMETHING HERE RUN /bin/bash -c shopt -s extglob &
我以为我理解了可选 的用法?(pattern-list) 在 bash (当 extglob shell 选项打开时)并且默认在 ksh .例如在 bash : $ shopt -s extglob
我刚刚在这里发现了 bash extglob shell 选项:- How can I use inverse or negative wildcards when pattern matching
代码 shopt -s extglob cp -r !(Backups.backupdb) /home/masi/Documents/ cp -r !(Applications.noindex) /h
我在 Debian 8.1、GNU bash、版本 4.3.30(1)-release (x86_64-pc-linux-gnu) 和具有 500 GB SSD 和 8 GB 闪存的 Lenovo G
如果 glob */ 只匹配目录,那么逻辑上 extglob !(*/) 应该匹配非目录;但这不起作用。这是一个错误还是我遗漏了什么?这适用于任何 shell 吗? 测试1证明*/有效 $ cd /t
问题 当在 subshell 中设置 'extglob' 选项时,Bash 脚本的执行失败并显示以下错误消息: /tmp/foo.sh: line 7: syntax error near unexp
在某些脚本中,我想使用当前文件夹中的文件夹名称。我想获取文件夹名称,这里我只会把有问题的部分放在例子中。如果我从终端运行它,我会得到: $ for D in */; do echo ${D%%+(/)
我正在通过自制软件安装星舰,但出现此错误: Permission denied @ apply2files - /usr/local/lib/node_modules/expo-cli/node_mo
我是一名优秀的程序员,十分优秀!