好的,我的一个朋友在一段代码中找到了一个正则表达式,但我根本没有经验。我试图搞清楚,我真的觉得它很基本,但我遇到了麻烦。
表达式为:^(.*?){0,1}>$
所以这是我从各种教程和定义中收集的内容:
^
代表“start”,$
代表end,因此这些代码必须描述完整的字符串才能被选中。*?
是一个懒惰的运算符(意思是它首先尝试取0前面的字符,如果不匹配,则需要一个,两个,三个等)。(.*?)
所以这必须意味着“尽可能少的角色”。(.*?){0,1}
:现在麻烦开始了。 “尽可能少的字符,零次或一次”?^(.*?){0,1}>$
:“尽可能少的字符,零次或一次,字符>然后结束”?这基本上意味着“选择所有内容,如果>位于字符串的末尾”?我很困惑......如果有人能够对这个问题(我认为非常基本的问题)有所了解,我将不胜感激......
编辑:好的,为了防止误解,在这种情况下使用正则表达式:
.replace(/^(.*?){0,1}>$/,"$1/>");
答案 0 :(得分:4)
您拥有的内容相当于以下内容:
^(.*)>$
首先写下它的人可能很匆忙,并没有意识到他们在那里放了太多无关紧要的东西。
在澄清您的用例后,请使用:
.replace(/>$/, '/>');
并且它会在结束>
标记之前添加斜杠(如果有的话)。
如果您想仅在尚未添加斜杠时添加斜杠,请使用:
.replace(/([^\/])>$/, '$1/>');