首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在字符串中查找由"/“分隔的重复单词

在字符串中查找由"/“分隔的重复单词
EN

Stack Overflow用户
提问于 2016-02-23 06:37:55
回答 2查看 1.2K关注 0票数 2

假设以下向量:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x <- c("/default/img/irs/irs/irs/irs/irs/irs/irs/irs/irs/irs/irs/irs/IRS.html/", "something/repeat/repeat_this")

我想检查一个由/括起来的单词是否被重复(注意,/可能在字符串的开始和结束中丢失)。我发现了下面的正则表达式here,但是(在我去掉特殊字符之后)我似乎无法修改它以适应我的情况:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grepl("\\b(\\S+?)\\1\\S*\\b", x, perl = TRUE)
# [1] TRUE TRUE 

我总是可以str_split(x, "/")并在列表上迭代duplicated()函数,并使用if()语句,但这将是非常低效率的。

期望的结果应该是带有TRUE或FALSE (或1和0)的向量。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-23 06:47:36

我想以下几点可能对你有用。首先,fixed = TRUEstrsplit()中绕过正则表达式引擎,直接进行精确匹配,从而使函数速度更快。接下来,anyDuplicated()返回一个长度为一个整数的结果,如果没有找到重复项,它将是零,否则返回大于零的结果。因此,我们可以使用strsplit()拆分字符串,并对结果迭代anyDuplicated()。然后,我们可以比较得到的向量与零。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vapply(strsplit(x, "/", fixed = TRUE), anyDuplicated, 1L) > 0L
# [1]  TRUE FALSE

为了安全起见,您可能希望删除任何前导/,因为它将在strsplit()的结果中生成一个空字符,并且在某些情况下可能会产生误导性结果(例如,字符串以/irs//irs开头或类似的情况在字符串后面发生)。您可以使用sub("^/", "", x)删除前导正斜杠。

总之,使您的strsplit()想法更快的方法是:

  • fixed = TRUE中使用strsplit()绕过正则表达式引擎
  • 使用anyDuplicated(),因为它不再照看它找到一个匹配的
  • 使用vapply(),因为我们知道结果的类型和长度
票数 6
EN

Stack Overflow用户

发布于 2016-02-24 09:25:22

其他解决方案--如果您只想检查您的模式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
grepl(x, pattern = "((.+)/).*(/\\2(/|$))", perl=T)

如果(.+)表示出现在斜杠前面的单词本身(捕获组2),则.*允许在两个相等的子字符串之间出现任意长度的字符、数字和空格。然后,如果该单词发生在斜杠之后,然后是另一个斜杠或字符串的末尾( (/\\2(/|$)) ),则匹配。

对于提取,您可以使用上面详细阐述的strsplit()。

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

https://stackoverflow.com/questions/35580382

复制
相关文章
在MySQL中查找重复记录
I want to pull out duplicate records in a MySQL Database. 我想在MySQL数据库中提取重复记录。 This can be done with: 这可以通过以下方式完成:
kirin
2021/04/30
3.8K0
Rdfind - 在Linux中查找重复文件
前段时间遇到一个问题,服务器下面一个文件夹下面的图片越来越多,由原来的5G,达到了现在的94G,其中这个文件夹下面有好多重复的图片,文件多了之后造成图片备份困难,图片迁移困难,浪费了大量的空间和IO。
kubernetes中文社区
2019/06/24
5.3K0
字符串查找----R向单词查找树
单词查找树的数据结构就是一种树型结构,它由字符串键中所有字符构造而成,允许使用被查找键中的字符进行查找。 先来看一下R向单词查找树的结点类: private static class Node{ private Object val; private Node[] next = new Node[R]; } 其中R是字母表的大小,如ASCII码是256。结点的值val可以是空,也可以是符号表中某个键所关联的值。具体来说,将某个键所关联的值保存在这个键最后一个字母所对应的结点中。 查找操作: 单词查找树以
SuperHeroes
2018/05/30
1.2K0
字符串查找----三向单词查找树
为了避免R向单词查找树在空间上的过度消耗,产生了三向单词查找树。在三向单词查找树中,每个结点都含有一个字符,三条链接和一个值。这三条链接分别对应着当前字母小于、等于和大于节点字母的所有键。 三向单词查找算法实现查找和插入很简单。在查找时,我们首先比较键的首字母和根结点的字母,如果键的首字母较小,则选择左链接;如果较大,则选择右链接;如果相等,则选择中链接。然后,递归地使用相同的算法。如果遇到了一个空连接或当键结束之时结点值为空,则未命中,如果键结束时结点值非空,则命中。插入方法和R向单词查找树基本原理相同。
SuperHeroes
2018/05/30
1.4K0
快速在组合中查找重复和遗失的元素
? ? ? ? ? ? ? ?
望月从良
2018/09/29
4.3K0
快速在组合中查找重复和遗失的元素
C++ 在无序字符串中查找所有重复的字符【两种方法】
for (int j = i + 1; j <= s.size() - 1; j++)
用户7886150
2021/02/05
3.9K0
查找数组中重复的数字
        题目来源于《剑指Offer》中的面试题3:找出数组中重复的数字。   // 题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,   // 也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3},   // 那么对应的输出是重复的数字2或者3。         解决方法有多种,包括数组排序,哈希表法,以及作者推荐的重排数组法。此处介绍自己的一个做法,以空间换
waylon
2018/03/08
4K0
在Mybatis的collection标签中获取以,分隔的id字符串
有的时候我们把一个表的id以逗号(,)分隔的字符串形式放在另一个表里表示一种包含关系,当我们要查询出我们所需要的全部内容时,会在resultMap标签中使用collection标签来获取这样的一个集合。
算法之名
2019/08/20
3.8K0
在Mybatis的collection标签中获取以,分隔的id字符串
LeetCode 609. 在系统中查找重复文件(哈希)
给定一个目录信息列表,包括目录路径,以及该目录中的所有包含内容的文件,您需要找到文件系统中的所有重复文件组的路径。 一组重复的文件至少包括二个具有完全相同内容的文件。
Michael阿明
2020/07/13
1.5K0
Java在字符串中查找匹配的子字符串
示例: 在源字符串“You may be out of my sight, but never out of my mind.”中查找“my”的个数。输出:匹配个数为2
全栈程序员站长
2022/09/14
7.2K0
反转字符串中的单词
单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
狼啸风云
2023/10/07
2750
在字符串中查找id值MySQL
SELECT * FROM `hz_article_type` WHERE FIND_IN_SET( 5, items_id ) LIMIT 0 , 30
全栈程序员站长
2022/07/07
5.4K0
在字符串中查找id值MySQL
颠倒字符串中的单词
单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。
PHP开发工程师
2022/04/28
1.5K0
颠倒字符串中的单词
字符串分隔
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
喜欢ctrl的cxk
2019/11/08
7330
inux查找系统中重复文件
查找和替换重复文件是大多数计算机用户的普遍要求。查找和删除重复文件是一项繁重的工作,需要时间和耐心。如果您的机器由 GNU/Linux 驱动,那么查找重复文件会非常容易,这要归功于 “fdupes” 实用程序。 Fdupes - 在 Linux 中查找和删除重复文件 Fdupes是由Adrian Lopez用C编程语言编写的 Linux 实用程序,在 MIT 许可下发布。该应用程序能够在给定的一组目录和子目录中找到重复的文件。Fdupes 通过比较文件的 MD5 签名然后进行字节到字节的比较来识别重复项。F
入门笔记
2022/06/02
1.9K0
LeetCode - 反转字符串中的单词③
LeetCode第557题,难度是简单,一个月三周以前刷的题目。突然意识到,我真的已经又是一个月没有写过LeetCode了,又变懒了,勤奋果然大都是暂时的。
晓痴
2019/07/24
1.5K0
LeetCode - 反转字符串中的单词③
如何遍历字符串中的单词
一个字符串由很多单词组成,单词间以空格隔开,现在我想遍历这些单词,有什么好办法可以实现它么?
ClearSeve
2022/02/10
3.2K0
2022-02-11:单词缩写。 给定一个由n个不重复非空字符串组
给定一个由n个不重复非空字符串组成的数组,你需要按照以下规则为每个单词生成最小的缩写。
福大大架构师每日一题
2022/02/11
4460
MySQL 中查找重复数据,删除重复数据
数据库版本 Server version: 5.1.41-community-log MySQL Community Server (GPL)
很酷的站长
2022/11/27
7.7K0
MySQL 中查找重复数据,删除重复数据
leetcode:557 反转字符串中的单词|||
题目就不用我讲解了把,垃圾题目。 思路:字符串先分割为什么分割? 因为后面要使用的函数都是数组的函数所以要。。。。。, 为什么使用的都是数组的函数? 因为字符串中没有办法可以反转的哈。 经过split过程了后的就是字符串的数组了(注意全部才是字符串数组,单独一个元素还是字符串哈),以空格为分割线,每一个都是字符串。 然后是map,为什么使用map? 兄弟们,这是用es6写的,当然用map了呀。 也可以使用foreach遍历哦. 然后是使用split函数为什么? 因为这是字符串啊,数组才有方法反转的。 然后是反转,然后是转换成字符串,为什么一定要转换成字符串? 因为s本来就是字符串的呀,难道要给数组给他吗?是吧,兄弟们。 注意一下这里:为什么不直接在map里面直接最后join(" ");呢? 因为里面反转的都是一个一个单词,不是直接反转整个字符串数组啊啊A1
贵哥的编程之路
2020/10/28
1.3K0

相似问题

在python中查找由重复字符组成的单词

20

在字符串中查找点分隔的单词

360

匹配由符号分隔的重复单词并忽略空格

20

在NSString中查找由字符串分隔的范围

15

Regex MySQL查找由标点符号分隔的单词

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文