为了账号安全,请及时绑定邮箱和手机立即绑定

一种在代码中获取标记之间字符串的方法

一种在代码中获取标记之间字符串的方法

C#
慕哥9229398 2023-09-09 17:27:10
我有这样的东西fragment COMMENT_TEXT : ~(')')* ;COMMENT : '(' COMMENT_TEXT ')' ;SLASH_COMMENT : '//' COMMENT_TEXT '//' ;comment : COMMENT | SLASH_COMMENT ;并想要COMMENT_TEXT在代码中获取字符串。这似乎是一项简单的任务,但我只是坚持了一段时间。这是监听器的一部分:public override void ExitComment(P.CommentContext context){    var cb = new CommentBlock();    cb.OriginalText = context.GetText();    _currentBlock = cb;}OriginalText是带大括号的注释。我怎样才能得到COMMENT_TEXT它自己?请提供相关文章的链接来解决此问题,而不是终极教程或参考手册本身。例如,对于这样的输入:(testCommentText123)我想要得到CommentBlock.OriginalText == "testCommentText123"
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

没有特定的方法可以访问 ANTLR 中令牌的各个部分。你只需要把绳子自己拆开就可以了。您可以使用正则表达式或检查标记类型(查看它是斜杠还是括号注释),然后使用 删除Substring第一个和最后一个 2 或 1 个(取决于注释的类型)字符。

PS:您的规则将匹配文件中SLASH_COMMENT从第一个到最后一个的所有内容。这可能不是你想要的。////


查看完整回答
反对 回复 2023-09-09
  • 1 回答
  • 0 关注
  • 43 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信