| | |-6ren">
gpt4 book ai didi

regex - Javacc 正则表达式匹配除某些字符串之外的所有字符串

转载 作者:行者123 更新时间:2023-12-02 18:20:31 26 4
gpt4 key购买 nike

匹配 任何内容 的正则表达式是什么,除了这些字符串: =>, | ?

如果您熟悉 javacc,我正在尝试定义我的 ANYTHING 标记,如下所示:

TOKEN :
{
<ARROW: "=>" >
|
<ANYTHING: (["\u0001" - "\uffdc"])+>
|
<PIPE: "|">
|
<UPPER_CHAR: (["A"-"Z"])>
}

谢谢

最佳答案

尝试这样的事情:

测试.jj

options {
STATIC = false ;
}

PARSER_BEGIN(Test)
public class Test {
public static void main(String[] args) throws Exception {
Test parser = new Test(new java.io.StringReader("foo=>bar=baz|done"));
parser.Parse();
}
}
PARSER_END(Test)

TOKEN :
{
< ARROW : "=>" >
| < PIPE : "|" >
| < ANYTHING : (~["=", "|"] | "=" ~[">"])+ >
}

void Parse() :
{}
{
(Any())* <EOF>
}

void Any() :
{Token t;}
{
( t=<ARROW> {System.out.println("ARROW = '" + t.image + "'");}
| t=<PIPE> {System.out.println("PIPE = '" + t.image + "'");}
| t=<ANYTHING> {System.out.println("ANYTHING = '" + t.image + "'");}
)
}

生成解析器类:

javacc Test.jj

并运行main方法:

java Test

将为输入打印以下内容“foo=>bar=baz|done”:

ANYTHING = 'foo'ARROW    = '=>'ANYTHING = 'bar=baz'PIPE     = '|'ANYTHING = 'done'

关于regex - Javacc 正则表达式匹配除某些字符串之外的所有字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12951909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com