Java “的有条件用法”;(及)";

Java “的有条件用法”;(及)";,java,regex,format,Java,Regex,Format,如果且仅当“(”在前面使用,或者“)”在使用“(”时是必须的,那么使用“)”的正则表达式格式是什么?我已经尝试过^[a-zA-Z]+([)]?[,]?[a-zA-Z0-9][.-/']?[(]?[a-zA-Z0-9][)?[a-zA-Z:.])$。但我不能让它仅在使用“(”时使用“)”。正则表达式无法处理上下文。在您的情况下,您需要查找上下文。正则表达式不适用于此。您需要编写一个函数来检查这一点 引用自: 在形式语言理论的背景下,有些东西被称为 “regular”,当它有一个语法,其中所有产生式

如果且仅当“(”在前面使用,或者“)”在使用“(”时是必须的,那么使用“)”的正则表达式格式是什么?我已经尝试过
^[a-zA-Z]+([)]?[,]?[a-zA-Z0-9][.-/']?[(]?[a-zA-Z0-9][)?[a-zA-Z:.])$
。但我不能让它仅在使用“(”时使用“)”。

正则表达式无法处理上下文。在您的情况下,您需要查找上下文。正则表达式不适用于此。您需要编写一个函数来检查这一点

引用自:

在形式语言理论的背景下,有些东西被称为 “regular”,当它有一个语法,其中所有产生式规则都有一个 以下表格:

  • B->a
  • B->aC
  • B->ε
  • 您可以将这些->规则解读为“左侧可以替换” 所以第一条规则是“B可以是” 替换为“a”,第二个“B可以替换为aC”,并且 第三个“B可以用空字符串替换”(ε是符号 对于空字符串)

    那么什么是B、C和a呢?按照惯例,大写字符表示这样 称为“非终端”——可以进一步细分的符号- 小写字符表示“终端”——不能使用的符号 进一步分解

    在您的情况下,您需要的是:

    (\([x].*\)[x])*
    
    我添加了
    [x]
    来表示
    x
    的次数(当然这不是正则表达式惯例的一部分)。从正则表达式的定义可以看出,没有办法以符合正则表达式定义的方式表示这样的表达式


    这不仅仅是一个“灰色”定义问题。创建一个类似正则表达式的语言来解决您在这里提到的问题要复杂得多(算法和复杂性方面)。尝试将您在此处提到的问题类型模式化是一个完全不同的问题域。

    正则表达式无法处理上下文。在您的情况下,您需要查找上下文。正则表达式不适用于此。您需要编写一个函数来检查这一点

    引用自:

    在形式语言理论的背景下,有些东西被称为 “regular”,当它有一个语法,其中所有产生式规则都有一个 以下表格:

  • B->a
  • B->aC
  • B->ε
  • 您可以将这些->规则解读为“左侧可以替换” 所以第一条规则是“B可以是” 替换为“a”,第二个“B可以替换为aC”,并且 第三个“B可以用空字符串替换”(ε是符号 对于空字符串)

    那么什么是B、C和a呢?按照惯例,大写字符表示这样 称为“非终端”——可以进一步细分的符号- 小写字符表示“终端”——不能使用的符号 进一步分解

    在您的情况下,您需要的是:

    (\([x].*\)[x])*
    
    我添加了
    [x]
    来表示
    x
    的次数(当然这不是正则表达式惯例的一部分)。从正则表达式的定义可以看出,没有办法以符合正则表达式定义的方式表示这样的表达式


    这不仅仅是一个“灰色”定义问题。创建一个类似正则表达式的语言来解决您在这里提到的问题要复杂得多(算法和复杂性方面)。尝试将您在此处提到的问题类型模式化是一个完全不同的问题域。

    正则表达式无法处理上下文。在您的情况下,您需要查找上下文。正则表达式不适用于此。您需要编写一个函数来检查这一点

    引用自:

    在形式语言理论的背景下,有些东西被称为 “regular”,当它有一个语法,其中所有产生式规则都有一个 以下表格:

  • B->a
  • B->aC
  • B->ε
  • 您可以将这些->规则解读为“左侧可以替换” 所以第一条规则是“B可以是” 替换为“a”,第二个“B可以替换为aC”,并且 第三个“B可以用空字符串替换”(ε是符号 对于空字符串)

    那么什么是B、C和a呢?按照惯例,大写字符表示这样 称为“非终端”——可以进一步细分的符号- 小写字符表示“终端”——不能使用的符号 进一步分解

    在您的情况下,您需要的是:

    (\([x].*\)[x])*
    
    我添加了
    [x]
    来表示
    x
    的次数(当然这不是正则表达式惯例的一部分)。从正则表达式的定义可以看出,没有办法以符合正则表达式定义的方式表示这样的表达式


    这不仅仅是一个“灰色”定义问题。创建一个类似正则表达式的语言来解决您在这里提到的问题要复杂得多(算法和复杂性方面)。尝试将您在此处提到的问题类型模式化是一个完全不同的问题域。

    正则表达式无法处理上下文。在您的情况下,您需要查找上下文。正则表达式不适用于此。您需要编写一个函数来检查这一点

    引用自:

    在形式语言理论的背景下,有些东西被称为 “regular”,当它有一个语法,其中所有产生式规则都有一个 以下表格:

  • B->a
  • B->aC
  • B->ε
  • 您可以将这些->规则解读为“左侧可以替换” 所以第一条规则是“B可以是” 替换为“a”,第二个“B可以替换为aC”,并且 第三个“B可以用空字符串替换”(ε是符号 对于空字符串)

    那么什么是B,C