草庐IT

re-entrant

全部标签

python - 什么是更快的操作,re.match/search 或 str.find?

对于一次性字符串搜索,简单地使用str.find/rfind是否比使用re.match/search更快?也就是说,对于给定的字符串s,我应该使用:ifs.find('lookforme')>-1:dosomething或ifre.match('lookforme',s):dosomethingelse? 最佳答案 问题:使用timeit最好回答哪个更快。fromtimeitimporttimeitimportredeffind(string,text):ifstring.find(text)>-1:passdefre_find(s

python - 在 re.sub 替换模式中处理对捕获组的反向引用

我想获取字符串0.71331,52.25378并返回0.71331,52.25378-即只查找一个数字、一个逗号、一个空格和一个数字,然后剥离出空间。这是我当前的代码:coords='0.71331,52.25378'coord_re=re.sub("(\d),(\d)","\1,\2",coords)printcoord_re但这给了我0.7133,2.25378。我做错了什么? 最佳答案 您应该对正则表达式使用原始字符串,请尝试以下操作:coord_re=re.sub(r"(\d),(\d)",r"\1,\2",coords)使

python的re : return True if string contains regex pattern

我有一个这样的正则表达式:regexp=u'ba[r|z|d]'如果单词包含bar、baz或bad,则函数必须返回True。简而言之,我需要Python的正则表达式模拟'any-string'in'text'我怎样才能意识到这一点?谢谢! 最佳答案 importreword='fubar'regexp=re.compile(r'ba[rzd]')ifregexp.search(word):print('matched') 关于python的re:returnTrueifstringcon

python - 类型错误 : can't use a string pattern on a bytes-like object in re. findall()

我正在尝试学习如何从页面中自动获取网址。在以下代码中,我试图获取网页的标题:importurllib.requestimportreurl="http://www.google.com"regex=r'(,+?)'pattern=re.compile(regex)withurllib.request.urlopen(url)asresponse:html=response.read()title=re.findall(pattern,html)print(title)我收到了这个意外错误:Traceback(mostrecentcalllast):File"path\to\file\C

java - 是否存在类似 RE2 的 Java 正则表达式库?

有没有人遇到过Google的正则表达式库RE2的Java版本或具有类似功能和良好性能的Java库?性能要求是关于正则表达式长度和输入文本长度的线性时间。澄清大多数正则表达式实现使用回溯算法来匹配输入文本,因此在一些简单的正则表达式上是指数的,例如(.*).(.*).(.*).(.*)。RE2是google的一个库,它通过使用自动机理论概念随输入大小线性变化的算法来解决这个问题。提问者想知道是否存在基于此算法的Java库。 最佳答案 Google今天发布了Go的RE2实现的纯Java端口。你可以在这里找到它:https://githu

java PrintCompilation 输出 : what's the meaning of "made not entrant" and "made zombie"

在运行Java1.6(1.6.0_03-b05)应用程序时,我添加了-XX:+PrintCompilation标志。在某些方法的输出中,尤其是我知道的一些方法被调用了很多,我看到文本madenotentrant和madezombie。这些是什么意思?最好的猜测是,在重新编译该方法或具有更大优化的依赖项之前,这是一个反编译步骤。真的吗?为什么是“僵尸”和“进入者”?例如,其中一些行之间有相当长的时间:[...nearthebeginning]42jsr166y.LinkedTransferQueue::xfer(294bytes)[...muchlater]42madenotentran

r - R中 "Error: package ' ____ _' was built before 3.0.0: please re-install it"的原因

在一台运行R2.15.2的计算机上,我安装了.zip文件中的软件包(这些软件包恰好是ggplot2和data.table,但我没有不认为特定的包是我的问题。)一切正常。我将这些软件包带到没有互联网连接的计算机上并安装它们。这台计算机正在运行R3.0.1。这些软件包似乎可以毫无问题地安装(使用R的“从本地zip文件安装软件包”选项)。当我使用library()调用包时,出现以下错误:Error:package''wasbuildbefore3.0.0:please-re-installit谁能解释引发此错误的潜在原因?.zip包是否必须在特定目录中才能正确安装?如果R安装在与.zip包加

ruby-on-rails - 如何 "re-install"一个gem?

问题很简单,所以不是写两个命令有一个替代吗?例如gemuninstallsubexecgeminstallsubexec是否只是重新安装或类似的东西? 最佳答案 根据您要实现的目标,以下将gem恢复为.gem文件的内容:gempristine如果您想清理整套已安装的gem,您也可以使用--all运行它。 关于ruby-on-rails-如何"re-install"一个gem?,我们在StackOverflow上找到一个类似的问题: https://stacko

regex - 使用正向预测 (?=regex) 和 re2

因为我对re2有点陌生,我试图弄清楚如何在Go中使用像JS、C++或任何PCRE样式的正向预测(?=regex).以下是我正在寻找的一些示例。JS:'foobarbaz'.match(/^[\s\S]+?(?=baz|$)/);Python:re.match('^[\s\S]+?(?=baz|$)','foobarbaz')注意:两个例子都匹配'foobar'非常感谢。 最佳答案 根据SyntaxDocumentation,不支持此功能:(?=re)beforetextmatchingre(NOTSUPPORTED)另外,来自Why

regex - 使用正向预测 (?=regex) 和 re2

因为我对re2有点陌生,我试图弄清楚如何在Go中使用像JS、C++或任何PCRE样式的正向预测(?=regex).以下是我正在寻找的一些示例。JS:'foobarbaz'.match(/^[\s\S]+?(?=baz|$)/);Python:re.match('^[\s\S]+?(?=baz|$)','foobarbaz')注意:两个例子都匹配'foobar'非常感谢。 最佳答案 根据SyntaxDocumentation,不支持此功能:(?=re)beforetextmatchingre(NOTSUPPORTED)另外,来自Why