当前位置: 首页 > 知识库问答 >
问题:

antlr4 lexer规则与字符串不匹配

华阳秋
2023-03-14
CREATE TABLE person 
( age integer,
  id integer,
  name character varying(30)),
  PRIMARY KEY ( id )
);

共有1个答案

相野
2023-03-14

为SQL编写一些规则,这些规则是必需的和不是必需的。

goodSQL:
    'CREATE' 'TABLE' Id '('
    Id typeDef (',' Id typeDef)? ','
    ')'
;

badSQL:
    'CREATE' 'TABLE' Id '('
    Id typeDef (',' Id typeDef)? ','
    'PRIMARY' 'KEY' keyDef
    ')' ->skip
;

这是一个可以开始的事情。在此之后,您必须定义idtypedefkeydef。添加->skip将不会分析与规则匹配的SQL语句。

祝你好运!

 类似资料:
  • 问题内容: 我在用Python将字符串中的数字匹配时遇到麻烦。尽管应该明确匹配,但甚至不匹配 或仅匹配。我的监督在哪里? 问题答案: 阅读文档:http : //docs.python.org/2/library/re.html#re.match 如果在零个或多个字符 开头 的 字符串 您要使用(或)

  • 我有一些xml文件,希望删除除特定字符串以外的所有内容。 StackOverflow上还有很多类似的问题,但都不适用于我的文件,在尝试了几个小时不同的正则表达式后,我想寻求帮助。 到目前为止,部分成功但并非完全成功的最接近的正则表达式是: xml文件的示例: 我使用regex101,因此可以将示例粘贴在那里,以了解为什么rex只能部分工作。简而言之,它与第一次出现的不匹配,但与第二次出现的匹配。我

  • 我正在为上传文件的put请求设置测试。我的协议文件中的请求主体由一个字符串组成,包含一个mime边界,该边界在每次测试运行时都会更改。我正在尝试为请求正文字符串定义一个regex匹配规则,但它不会匹配。头内容类型的类似匹配规则是匹配的。 如果主体只是一个字符串,我应该如何定义主体的匹配规则?

  • null null 以下是我的(不完整和不成功的)尝试: 如果不能在lexer中解决这个问题,我可以使用标记、、、、、和自行编写解析器规则。

  • 我需要一个与字符串中的子字符串匹配的正则表达式, 匹配的字符串必须是/*exa*/而不是/*exa*/mple*/。 它也不能包含。 我试过这些正则表达式:

  • 例如,我想忽略这个字符串123 456 78912,但是正则表达式匹配了前三个字符,所以它返回true。有没有办法在不创建新正则表达式的情况下做到这一点? 正则表达式还必须匹配以下内容: 0(123)456-789-ABcd 0 (123) 456 (123) 234 345-456 1111111111111 1 123 123 123 123 123个 123-(456) 123 (456)