我正在努力完善这个答案;并发现下面给出的正则表达式在 中无法正常工作(根据其含义)。R
+?on.*$
根据我对正则表达式的理解,上述正则表达式匹配:
懒洋洋地间隔一次或多次,然后是 on,然后是任何内容(换行符除外),直到最后。
输入:
Posted by ondrej on 29 Feb 2020.
Posted by ona'je on 29 Feb 2020.
OUTPUT(据我所知,如果测试字符串中的正则表达式模式被替换为“”)
Posted by
Posted by
当我试图在python(这里的实现)中测试它时,javascript和java(这里的实现);我得到了我预期的结果。
const myString = "Posted by ondrej on 29 Feb 2020.\nPosted by ona'je on";
console.log(myString.replace( new RegExp(" +?on.*$","gm"),""));
展开代码段
另一方面,如果我试图在R中实现相同的正则表达式(在这里实现);或者我得到的结果是
Posted by ondrej
Posted by ona'je
这是出乎意料的。
怀疑
我认为也许正则表达式解析器的工作方式不同(也许是从右到左)。我阅读了正则表达式如何工作的文档,但发现上述正则表达式与其他语言没有什么不同。我在这里可能错过了一些东西。我不精通,但就我的正则表达式知识而言;我相信上面的正则表达式应该像它的工作方式一样工作,并且(也可能在)每个标准正则表达式引擎中(据我所知)。我的问题是为什么上面的正则表达式在R中的工作方式不同?RRRjavajavascriptpythonpcre
婷婷同学_
相关分类