首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

尝试使用for-loop访问gregexpr结果的第一个值,但仅获得-1 -意外结果

问题描述: 尝试使用for-loop访问gregexpr结果的第一个值,但仅获得-1 -意外结果。

回答: 首先,gregexpr是一个用于在字符串中查找匹配模式的函数。它返回一个包含匹配位置的向量。如果没有找到匹配项,则返回-1。

对于这个问题,如果你只想获取第一个匹配的位置,可以使用以下方法:

代码语言:txt
复制
text <- "example text"
pattern <- "example"

result <- gregexpr(pattern, text)[[1]]
first_match <- result[1]

if (first_match == -1) {
  # 没有找到匹配项
  print("No match found")
} else {
  # 找到了匹配项
  print(paste("First match found at position", first_match))
}

在上面的代码中,我们首先使用gregexpr函数查找匹配项,并将结果存储在result变量中。然后,我们从result中提取第一个匹配的位置,并将其存储在first_match变量中。最后,我们检查first_match的值,如果为-1,则表示没有找到匹配项;否则,我们打印出第一个匹配项的位置。

这是一个简单的示例,你可以根据自己的需求进行修改和扩展。

推荐的腾讯云相关产品:腾讯云云服务器(CVM) 腾讯云云服务器(CVM)是一种可随时扩展的云计算服务,提供高性能、可靠稳定的云服务器实例。它可以满足各种规模和类型的应用需求,包括网站托管、应用程序部署、远程办公、游戏服务等。腾讯云云服务器提供多种配置和操作系统选择,支持弹性伸缩和按量计费,为用户提供灵活、可靠的云计算基础设施。

产品介绍链接地址:腾讯云云服务器(CVM)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【学习】在R语言中使用正则表达式

真正要用好字符处理函数,则不得不用到正则表达式。 正则表达式(Regular Expression、regexp) 是指一种用来描述一定数量文本模式。...R语言中很多字符函数都能识别正则表达式,而最重要函数就是 gregexpr()。该函数第一个参数是正则表达式,前后需要用引号,对元字符进行转义时要用\\。第二个参数是等待处理文本。...[A-Za-z]+'(gregout<-gregexpr(pattern,word)) [[1]] [1] 5 attr(,”match.length”) [1] 24 [[2]] [1] -1 attr...” 更方便使用方式是根据上述方法建立一个自定义函数getcontent,参数s表示待处理文本,参数g表示是通过gregexpr函数处理后结果。...下面我们用一个较大例子来说明在实际数据抓取工作中,如何使用正则表达式。

1.1K40

左手用R右手Python系列13——字符串处理与正则表达式

str_extract() #返回匹配 以上便是R语言中支持正则表达式高频应用函数,其中R语言基础函数中缺少一个精确返回匹配模式结果函数,但是stringr中弥补了这一缺陷...,这里详解stringr这一函数,其他函数感兴趣可以查阅源文档。...regexpr("\\d{3,}",myword) [1] 5 4 4 5 attr(,"match.length") [1] 7 3 3 3 attr(,"useBytes") [1] TRUE 返回是一个带有属性信息原子型向量...输出第一个匹配模式开始位置和长度,而regexpr则会输出所有的匹配模式和长度。...从输出上来看,regexpr忽略了第一个记录中最后几个数字,但是gregexpr成功捕获并返回其开始位置和长度,但是也导致其输出结果冗长繁琐,一般不常用到。

1.7K40
  • R语言基础教程——第9章:字符串操作

    对于grep函数,结果只有匹配或者不匹配,因此匹配时输出向量中该元素下标,如果是单个字符就输出1,对于grepl,和grep其实一样,不过输出是逻辑,匹配就是T,不匹配就是F。...参数“value”默认为F,输出就是刚才说元素下标或者逻辑,如果改成T,就会输出查找字符串。还有一个参数“ignore.case”,默认是F,表示大小写敏感,可以改为T,表示大小写不敏感。...regexpr和gregexpr使用似乎比较多,因为它们很像其他语言中instr函数,可以查找到某些字符在字符串中出现位置,不过我觉得用处并不是很大,因为通常情况下寻找某字符位置目的就是为了做相关处理...regexpr和gregexpr关系和sub与gsub差不多,gregexpr操作向量时会返回列表。   ...) [1] "chars" attr(,"useBytes") [1] TRUE gregexpr()函数 gregexpr(pattern,text)函数功能与regexpr()一样。

    2.6K10

    笨办法学 Python3 第五版(预览)(三)

    使用for-loop之前,你需要一种方法来存储循环结果。最好方法是使用lists。Lists正是它们名字所说:一个按照从头到尾顺序组织东西容器。这并不复杂;你只需要学习一种新语法。...__next__()结果赋给名为number变量 这就是for-loop实际上所做一切。它主要是一个单字节代码FOR_ITER,结合其他几个来遍历列表。...它与正常布尔逻辑相反(0==False)原因是你可以使用不同数字来指示不同错误结果。你可以使用 exit(100) 来表示不同错误结果,而不同于 exit(2) 或 exit(1)。...退一步,审查你代码,然后删除它。你不必一直这样做,如果你养成丢弃第一个版本习惯,你将获得两个好处: a. 你第二个版本几乎总是比第一个版本好。 b. 你向自己确认这不仅仅是愚蠢运气。...如果您认为某个规则很愚蠢,请尝试使用它。 循环规则 仅在需要永久循环时才使用while循环,这意味着可能永远不会用到。这适用于 Python;其他语言不同。

    15410

    Java遍历Map效率对比

    Java遍历Map效率对比 Java 中Map容器遍历有多种方式,但是不同方式效率会大有不同,以前没有注意这些细节,随意使用遍历方式在本地可能没有什么影响,但是在项目在高频使用需要特别注意,尽量使用高效方式...首先,Map.Entry是可以包含了Key和Value,keySet包含了所有的Key,再使用get方法可以拿到对应Value;所以包含Key和Value内容就有两种方式,我们再看访问模式...,可以使用迭代器Iterator 访问,也可以使用For循环访问;那么2种包含方式和访问模式组合起来就是4种访问方式 初始化Map 导入相应包 import java.util.HashMap; import...319 对比结论 多次验证,上述结果变化基本不大。...,这个由旧key和value计算得出 void replaceAll(BiFunction<?

    92220

    R语言︱文本(字符串)处理与正则表达式

    grep返回匹配项下标,而grepl返回所有的查询结果,并用逻辑向量表示有没有找到匹配。...虽然sub和gsub是用于字符串替换函数,严格地说R语言没有字符串替换函数,因为R语言不管什么操作对参数都是传不传址。...但它们返回长度(个数)有差 别:substr返回字串个数等于第一个参数长度;而substring返回字串个数等于三个参数中最长向量长度,短向量循环使用。..., c(2,4), c(4,5,8)) [1] "234" "45" "2345678" 因为x向量长度为1,所以substr获得结果只有1个字串,即第2和第3个参数向量只用了第一个组合...、gregexpr或regexec函数获得位置信息后再进行字符串提取操作可以自己试试看。

    4.2K20

    寻找与疾病相关SNP位点——R语言从SNPedia批量提取搜索数据

    crouzon syndrome,即会出现许多相关SNP搜索结果   如果这时候我想看每个SNP相关信息,我就要每个链接分别点进去   后来发现我们只需要提取里面的部分信息,Orientation...使用方法:```gregexpr(pattern,istring, fixed = FALSE) #pattern就是要匹配正则表达是,istring是待匹配字符串矢量,比如c("abc","cdf...,许多函数以后可以直接复制使用,或者放进一个自己做R包 !...extradress(strURL) pattlistMainTable <- list("Orientation","Chromosome","Gene 此匹配模式列表用于返回该字符串所在index,而对应是...结果可以直接打开,也可以用excel自文本打开,方便查看 !

    1.7K30

    TVM源语-Compute篇

    先来看第一个例子,vector_addition。...在这里插入图片描述 n表示定义数组长度,A,B表示分别开一个长度为n数组,然后通过lambda表达式将A和B中每个元素计算结果放进C中。...关于te.compute其实就是你输出结果第一个参数A.shape表示输出矩阵shape,lambda i:则可以理解为 for i: 0->n-1,最后通过create_schedule将生成C...先看看TVM生成schedule是什么样: 在这里插入图片描述 看到第一个te.compute是做一个三层for-loop,也就是我们通常写两个矩阵乘法时候用到,不难理解,这里将二维坐标的表示拆成了一维坐标的形式...在这里插入图片描述 B0,B1计算都被统一到两个for-loop中了,而不是分开运算。

    2.4K20

    译 | 你到底有多精通 C# ?

    重载方法中 null 在转到其他话题之前,让我们仔细了解在调用参数数量相同类型不同重载方法时如何处理空。...我们可以向左移动 32位,而不是向左移动1位32次,并获得相同结果。 var shifted = 0b1 << 32; 是这样吗?这是错! 此表达式结果将是1。为什么?...这是实例化任何类时初始化顺序: 静态字段 (仅限第一次类访问: 静态成员或第一个实例) 静态构造函数 (仅限第一次类访问: 静态成员或第一个实例) 实例字段 (每个实例) 实例构造函数 (每个实例)...对于第一个,这是从方法开始到第一个 yield return 语句代码。对于第二个,它是第一个和第二个 yield return 语句之间代码。以此类推,直到方法结束。...尝试以不同方式编写它或传递该可选参数默认 (如我们 Math.Round 中示例),以使意图更清晰。

    84140

    Golang 中 for-loop 和 goroutine 问题

    背景 最近在学习MIT分布式课程6.824过程中,使用Go实现Raft协议时遇到了一些问题。...3,因此最高下标为2,在非并行编程中代码中for-loop应该是很直观,我当时并没有意识到有什么问题。...调试信息显示i为3,当时就一直想不明白循环条件明明是 i < 2,怎么会变成3呢。 01. 调查 虽然不明白发生了什么,知道应该是循环中引入 goroutine 导致。...由于闭包只是绑定到这个 val 变量上,因此极有可能上面的代码运行结果是所有 goroutine 都输出了切片最后一个元素。...这是因为很有可能当 for-loop 执行完之后 goroutine 才开始执行,这个时候 val 指向切片中最后一个元素。

    1.7K70

    使用深度学习进行分心驾驶检测

    结果—在3个时间段内进行验证时,损失0.014,准确性为99.6%。 图:初始模型结果 考虑了一下意外构建世界上最好CNN架构一秒钟。因此使用此模型预测了未标记测试集类。...每层目的: 全局平均池化层保留每个补丁中值平均值 辍学层有助于控制过度拟合,因为它会丢弃一部分参数(提示:尝试使用不同辍学是个好主意) 批处理归一化层将输入归一化到下一层,从而可以进行更快,更灵活训练...在进行迁移学习时,第一个问题是是否应该只训练添加到现有架构中额外层,还是应该训练所有层。从使用ImageNet权重开始,并且训练新层,因为要训练参数数量会更少,而模型会训练得更快。...训练结束时存储最终权重将不是最佳,它们可能不会给出最小对数损失。可以使用Keras中CallBacks功能,当模型在经过一段时间后有所改善时,才可以减轻模型权重。...4.永不遗忘最终应用程序:对7个模型进行集成,然后在输出中进行KNN评分,得到了不错成绩,但是如果必须选择一个模型,可以用最少数量获得良好更快预测资源方面,Mobilenet将是显而易见选择。

    3.1K20

    有效使用 Node.js 事件循环

    对于 Node.js 应用程序开发新手而言,作为学习曲线一部分,他们需要了解单线程事件循环工作原理,以及它可能导致意外结果方式。您可以使用本教程中 3 个交互式示例中事件循环进行练习。...然后尝试更改 setTimeout() 调用中数字,以查看输出有何变化。例如,将所有都设置为 0。...示例 2:回调模式 尽管第一个示例演示了 Node 如何处理异步代码,您通常会采用回调模式 来调用异步代码。该模式如下所示: 清单 1....例如,如果 timeout 参数是 0 和 5000 之间随机生成数字,那么您就无法知道将获得什么消息。 按原样运行该代码。现在尝试更改 printMessage() 调用中数字。...使用 Node 库来访问数据库和文件等对象时,了解如何处理异步方法 — 和如何确保代码按一定顺序执行 — 是至关重要技能。

    1.6K20

    R语言字符串函数详解

    默认为FALSE perl:逻辑,默认为FALSE,取TRUE时,分割符使用正则表达式 useBytes:逻辑,默认为FALSE, ?...= FALSE, invert = FALSE),结果返回匹配向量x元素索引 ignore.case:逻辑,默认FALSE,区分大小写; perl:逻辑,默认FALSE,不使用正则表达式...; value:逻辑,设置结果返回匹配元素还是索引,默认为FALSE:返回索引; fixed:逻辑,默认为FALSE,取值为TRUE时使用精确匹配; useBytes:逻辑,默认取值FALSE...; invert:逻辑,默认取值FALSE,设置结果返回匹配还是非匹配元素; ?...(5) regexpr(pattern, text, ignore.case = FALSE, perl = FALSE, fixed = FALSE, useBytes = FALSE),结果返回每个元素匹配第一个位置及字符数目

    2.6K60

    深度学习库使用了这些「黑魔法」

    理论峰值无法实现原因在于,内存访问同样需要时间:无法快速获取数据则无法快速处理数据。上述高度嵌套for-loop使得数据访问非常艰难,从而无法充分利用缓存。...大部分现代深度学习库使用行主序作为存储顺序。这意味着同一行连续元素被存储在相邻位置。对于多维度而言,行主序通常意味着:在线性扫描内存时第一个维度变化速度最慢。 那么维度本身存储顺序呢?...Halide语言 本文讨论优化有时需要使用C语法甚至汇编语言这类底层低级语言。这会影响代码可读性,还会使尝试不同优化方法变得困难,因为它需要重写全部代码。...因为乘/加顺序对结果没有影响。...使用im2col类似的微调代码和矩阵相乘,同样卷积可以在大约20毫秒内完成运行。如想深入了解,你可以尝试自行试验不同调度策略。

    1K30

    OIL + VCache如何改善Facebook视频延迟 并减少存储和计算开销?

    开发人员可根据每个文件甚至每个I/O不同属性编写不同DAG,并随着时间推移与需求变化更改这些属性,继而根据文件使用情况(无论是经常访问还是很少访问数据)无需更改其名称即可匹配存储属性。...分布式内存概念并不新鲜,VCache与其他系统之间差别在于集成了OIL。OIL访问VCache,VCache通过OIL访问其他存储。...此节点允许描述if-then-else-chain、for-loop或parallel-for-loop之中任何组合控制流。...使用OIL + VCache,开发者可以拥有本地缓存,这些缓存与写入主机具有相同运行结果,同时还使用远程主机实现长期持久性和负载共享。...使用这样层次结构,开发者可以选择减少IOPS和存储系统开销,并且仍然放弃相对较少期望属性,例如运行结果共享和对字节最低延迟访问。 但是,当要写入数据总和超过本地主机内存时,这种本地缓存将失败。

    71860

    Google Earth Engine(GEE)——R 语言 Google 地球引擎20个基本案例分析

    为避免意外行为,请勿在脚本中混合使用客户端和服务器功能,如此处、此处和此处讨论那样。有关地球引擎中客户端与服务器深入解释,请参阅此页面和/或本教程。...除非您需要随机访问集合元素(即您需要获取集合第 i 个元素),否则请在集合上使用过滤器来访问单个集合元素。...请注意,第二个参数map()是TRUE。这意味着映射函数可能会返回空,并且它们将被删除到结果集合中。...在输出字典中,reducer 名称附加到带名称。要获得均值和 SD 图像(例如对输入图像进行归一化),您可以将转换为图像并使用正则表达式分别提取均值和 SD,如示例中所示。 8....您不应该期望以交互方式提供完整结果:您需要Export. 另请注意,应极其谨慎地使用 for 循环,并且作为最后手段。最后,for 循环需要手动获取输入集合大小并将其硬编码到适当位置。

    28810

    力扣 1519——子树中标签相同节点数

    本题主要在于对树这种数据结构考察,以及深度优先遍历使用,优化时可以采取空间换时间策略。...解题 首次尝试 这道题是要让我们计算:在子树中,和当前节点字符相同节点个数。...2 3 根据预期结果反推出来树是: 0 / \ 2 3 / 1 那么输入中最后给出[1,2]就不是从父节点指向子节点,也就是输入中给出边关联节点顺序,是任意...Node node = nodes[sz]; // 因为当前节点已经访问过,自然下标需要+1 sz++; for (; ; ) { // 从后往前,找到当前节点没有访问第一个子节点...本题主要在于对树这种数据结构考察,以及深度优先遍历使用,优化时可以采取空间换时间策略。 有兴趣的话可以访问博客或者关注我公众号、头条号,说不定会有意外惊喜。

    46320

    OIL + VCache如何改善Facebook视频延迟 并减少存储和计算开销?

    开发人员可根据每个文件甚至每个I/O不同属性编写不同DAG,并随着时间推移与需求变化更改这些属性,继而根据文件使用情况(无论是经常访问还是很少访问数据)无需更改其名称即可匹配存储属性。...分布式内存概念并不新鲜,VCache与其他系统之间差别在于集成了OIL。OIL访问VCache,VCache通过OIL访问其他存储。...此节点允许描述if-then-else-chain、for-loop或parallel-for-loop之中任何组合控制流。...使用OIL + VCache,开发者可以拥有本地缓存,这些缓存与写入主机具有相同运行结果,同时还使用远程主机实现长期持久性和负载共享。...使用这样层次结构,开发者可以选择减少IOPS和存储系统开销,并且仍然放弃相对较少期望属性,例如运行结果共享和对字节最低延迟访问。 但是,当要写入数据总和超过本地主机内存时,这种本地缓存将失败。

    62520
    领券