首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我该怎么做评论?

我该怎么做评论?
EN

Stack Overflow用户
提问于 2021-06-29 04:24:55
回答 2查看 308关注 0票数 0

我该怎么做评论呢?我正在做一名名叫“水布”的口译员。我遇到的一个问题是评论。他们应该长得像这个。然而,我在实现它们时遇到了一些困难。这是calico的源代码

代码语言:javascript
复制
...
\\inheritance and polymorphism\\;
public class Main(){
    public static main() {
        println("test"); \\hello world\\;
        me = class Person(11, "a", "b", "11/09/09"); \\objects\\;
        println(me.get_details());
        me.tax(); \\encapsulation\\;
        println(me.get_details());
        me2 = class Employee(11, "a", "b", "11/09/09", "n", "11/09/35", 1000)
    }
};

注释标记应该看起来像这个\继承和多态\但是它看起来像这个\继承和多态类Main(){ public静态main() {println.我试过像这样做t_COMMENT = r"\\\\.*\\\\",但这不起作用,我也试过这样做

代码语言:javascript
复制
def t_COMMENT(t):
    r'(/\\(.|\n)*?\\/)|(//.*)'
    pass
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-03 10:54:37

我建议您分别在像regex101.com这样的独立网站上测试regex。

下面介绍了一个链接到regex

我测试了这个字符串来声明注释:

代码语言:javascript
复制
(\\\\(.|\n)*?\\\\)

我得到了三支火柴

代码语言:javascript
复制
\\ a multiline
comment \\
print (a)
\\inheritance and polymorphism\\;print ("ab");\\b\\;print("end")

代码语言:javascript
复制
\\ a multiline
comment \\

代码语言:javascript
复制
\\inheritance and polymorphism\\

代码语言:javascript
复制
\\b\\

根据regex101的说法,它需要加倍的反斜杠,因为

匹配字符\字面上(区分大小写)

根据regex101的说法,它需要(.|\n)*?,因为

第二捕捉组(.|\n)*? *?匹配以前的令牌之间的零和无限的次数,尽可能少,根据需要展开(懒惰)

票数 0
EN

Stack Overflow用户

发布于 2021-07-01 13:30:38

问题是,*是一个贪婪的匹配,这意味着它将消耗比它需要的更多的东西:例如,假设我们有这行代码\\a\\;print("ab");\\b\\;print("end") --注释令牌将从第一个\\到最后一个\\,以及在使注释令牌看起来像这个糟糕的\\a\\;print("ab");\\b\\之间的所有东西。

使用?*运算符上将贪婪的运算符转换为懒惰的运算符,这意味着注释令牌将从第一个\\吐出到下一个\\停止,生成令牌并找到另一个注释,最后的输出被分割为2,正如它应该是的那样。1.\\a\\ 2.\\b\\

在这个*上使用*使它变得懒惰,做它想让我做的事情

固定的代码是这个\\\\.*?\\\\,如果您想了解更多关于贪婪和懒惰操作符的详细信息,请访问这个问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68172611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档