相关疑难解决方法(0)

是否可以在不使用递归或平衡组的情况下将嵌套括号与正则表达式匹配?

StackOverflow鼓励自己回答问题,所以我决定创建这篇文章来分享我最近发现的东西.

问题:在正则表达式中匹配任意嵌套的括号组,例如Java的java.util.regex,既不支持递归也不支持平衡组.即,匹配3个外部组:

(第一第二第三)))))))

这个练习纯粹是学术性的,因为我们都知道正则表达式不应该被用来匹配这些东西,正如Q-tips不应该被用来清理耳朵一样.

java regex

20
推荐指数
2
解决办法
3090
查看次数

如何匹配Java中括号内的字符串(嵌套)?

我想在括号内匹配一个字符串,如:

(i, j, k(1))
^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

该字符串也可以包含闭括号.如何在不编写解析器的情况下将它与Java中的正则表达式匹配,因为这只是我项目的一小部分.谢谢!

编辑:

我想寻找一个字符串块,并找到像u(i, j, k),u(i, j, k(1))或者只是u(<anything within this paired parens>)和他们更换到__u%array(i, j, k)__u%array(i, j, k(1))我的Fortran语言翻译应用.

java regex nested

14
推荐指数
1
解决办法
2万
查看次数

找到第一个外括号

我需要找出第一个最外层(不是嵌套)括号索引.

例如

[]                         output: 0, 1
1[2]                       output: 1, 3
3[a2[c]]2[abc]3[cd]        output: 1, 7
Run Code Online (Sandbox Code Playgroud)

我可以通过很多条件找到它,当前代码:

public static void main(String[] args) {
    String input = "3[a2[c]]2[abc]3[cd]ef";
    int first = 0;
    int second = 0;

    int count = 0;
    boolean found = false;
    for (int index = 0; index < input.length(); index++) {
        if (input.charAt(index) == '[') {
            count++;
            if (found == false) {
                found = true;
                first = index;
            }
        } else if (input.charAt(index) == ']') {
            count--;
            if (found && …
Run Code Online (Sandbox Code Playgroud)

java string algorithm

5
推荐指数
1
解决办法
177
查看次数

标签 统计

java ×3

regex ×2

algorithm ×1

nested ×1

string ×1