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

ANTLR4如何创建一个正则表达式,允许除两个选定字符之外的所有字符?

越景天
2023-03-14

嗨,例如,我有g4文件的代码:

a: [A-Z][A-Z];
b: [a-z]'3';

现在我想再增加一行,它可以识别所有不属于a或b的字符

我试过:

a: [A-Z][A-Z];
b: [a-z]'3';
ALLOTHERCHARACTERS: ~[a]|~[b]

但我没有工作。

例如,输入84209ddjio29现在应该在ALLOTHERCARACTERS中,但我没有工作。

(Lexer在最后给出了一个java文件,但我认为这对于这个“任务”来说并不重要。)

共有1个答案

邢运良
2023-03-14

这是“除此之外的任何内容”的正确语法:

[^ab]

这将匹配任何不是a或b的字符。

 类似资料:
  • 我有以下字符串: 如果您将它格式化得很好,您将会看到类似这样的内容: 所以我有一堆锚标签,它们之间有断点。在每个锚的文本中,我想删除管道字符和文件类型: 狗-00.jpg|图像/JPEG 变成 dog-00.jpg 正则表达式也应该适用于所有未来的文件类型,例如: dog-01.docx|应用/vnd.openxmlformats-officedocument.wordprocessingml.d

  • 我正在尝试编写一个正则表达式以允许数字和中间只有一个hypen(不能在开始或结束时)说模式:,是可以接受的,但模式:或或或或是不可接受的 我试过这样做,但这将允许-在开始时,也允许多个- 我不太擅长正则表达式,所以一点解释会很有帮助。 编辑:很抱歉再次打扰你,但我需要的数字只有2位(123-346)应被视为无效。

  • 问题内容: 我将如何使用regx返回两个方括号之间的所有字符。这是一个例子: 我发现一个正则表达式可以在花括号之间进行操作,但是使它与方括号一起使用的所有尝试均失败了。这是正则表达式:这是我试图破解它 最终解决方案: 问题答案: 将匹配一条线并捕获组中您想要的内容。 你必须逃脱,并用 rubular.com证明链接上的文档将解释表达式的形成方式。

  • 我在ASP.NET应用程序中有一个textbox,我需要使用正则表达式来验证用户输入字符串。要求字符串的连字符总数只能为一个。 匹配项: null 测试--您好 -测试- 测试-您好--

  • 我有以下模式来验证字符串 但在这里,它也不接受两个字符串之间的空间。有人能告诉我在上面的模式中我必须做什么改变,以便在两个字符串之间留出空间吗?但是字符串的开头和结尾不应该允许有空格。

  • 问题内容: 允许数字和点的正则表达式是什么?关于\D这只允许数字,但不允许一个点,我需要它允许数字和一个点,这是一个浮点值,当我在中执行函数时需要有效,但我需要的只是正则表达式那只允许我需要它允许的。 这将是JavaScriptreplace函数的本机语言,用于删除非数字和其他符号(点除外)。 问题答案: 如果您想允许1和1.2: 如果您希望允许,和: 如果只允许1.2(仅浮动): \d允许位数(