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

使用regex删除字符串中的重复(连续或非连续)单词

使用正则表达式可以删除字符串中的重复单词,无论是连续的还是非连续的。下面是一个示例的答案:

正则表达式模式:\b(\w+)\b\s+\b\1\b

解释:

  • \b 表示单词的边界,确保匹配的是完整的单词。
  • (\w+) 表示匹配一个或多个字母、数字或下划线,这个部分会被捕获为第一个分组。
  • \s+ 表示匹配一个或多个空格。
  • \b\1\b 表示匹配第一个分组捕获的内容,确保重复的单词。

替换为一个空字符串即可删除重复的单词。

示例代码(使用Python的re模块):

代码语言:txt
复制
import re

def remove_duplicate_words(text):
    pattern = r'\b(\w+)\b\s+\b\1\b'
    return re.sub(pattern, '', text)

text = "I love love coding. It is is so much fun."
result = remove_duplicate_words(text)
print(result)

输出结果:

代码语言:txt
复制
I love coding. It is so much fun.

这个正则表达式模式可以删除字符串中的重复单词,无论是连续的还是非连续的。它可以应用于文本处理、数据清洗等场景。

推荐的腾讯云相关产品:腾讯云函数(Serverless 云函数计算服务),可以用于处理文本数据、执行自定义逻辑等任务。产品介绍链接地址:https://cloud.tencent.com/product/scf

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

相关·内容

L1-064 估值一亿AI核心代码

,把标点符号前面的空格删掉; 把原文中所有大写英文字母变成小写,除了 I; 把原文中所有独立 can you、could you 对应地换成 I can、I could—— 这里“独立”是指被空格标点符号分隔开单词...; 在一行输出替换后句子作为 AI 回答。...输入描述: 输入首先在第一行给出不超过 10 正整数 N,随后 N 行,每行给出一句不超过 1000 个字符、以回车结尾用户对话,对话为字符串,仅包括字母、数字、空格、可见半角标点符号。...cout << "AI: "; str = regex_replace(str,regex("\\s+")," "); //删除连续多余空格 str...str = regex_replace(str,regex("\\s+")," "); //删除连续多余空格 str = regex_replace(str,regex

1.5K20
  • C#一些字符表达(一)

    ,这样不让编辑器去解析其中转义字符,而作为正则表达式语法(元字符)存在; \b : 匹配单词开始结束; \B :匹配单词开始结束;...^ :匹配必须出现在字符串开头开头; $: 匹配必须出现在以下位置:字符串结尾,字符串结尾处\n之前结尾; \A: 指定匹配必须出现在字符串开头...\n之前(忽略Multiline选项); \G:指定匹配必须出现在上一个匹配出现地方,与Match.NextMatch()一起使用时,此断言保证所有匹配都是连续; 实例: string...(除了“0-9数字”); \B :匹配不是单词开头结束位置; [abc] :匹配括号字符; [a-c] :a字符到c字符之间是字符;...:重复零次一次; + :重复一次更多次; * :重复零次更多次; 实例: string s="46((*&sadfj就发给你就"; string

    79510

    正则表达式学习笔记

    来源:http://deerchao.net/tutorials/regex/regex.htm \b是正则表达式规定一个特殊代码(好吧,某些人叫它元字符,metacharacter),代表着单词开头结尾...虽然通常英文单词是由空格,标点符号或者换行来分隔,但是\b并不匹配这些单词分隔字符任何一个,它只匹配一个位置。 假设你在一篇英文小说里查找hi,你可以使用正则表达式hi。...好吧,现在我们说说正则表达式里单词是什么意思吧:就是不少于一个连续\w。不错,这与学习英文时要背成千上万个同名东西的确关系不大 :) \d+匹配1个更多连续数字。...重复零次一次 {n} 重复n次 {n,} 重复n次更多次 {n,m} 重复n到m次 下面是一些使用重复例子: Windows\d+匹配Windows后面跟1个更多数字 ^\w+匹配一行第一个单词...代码/语法 说明 \W 匹配任意不是字母,数字,下划线,汉字字符 \S 匹配任意不是空白符字符 \D 匹配任意数字字符 \B 匹配不是单词开头结束位置 [^x] 匹配除了x以外任意字符 [

    77670

    正则表达式30分钟入门教程 转

    好吧,现在我们说说正则表达式里单词是什么意思吧:就是不少于一个连续\w。不错,这与学习英文时要背成千上万个同名东西的确关系不大 :) \d+匹配1个更多连续数字。...这里匹配是指是字符串里有没有符合表达式规则部分。如果不使用^和$的话,对于\d{5,12}而言,使用这样方法就只能保证字符串里包含5到12连续位数字,而不是整个字符串就是5到12位数字。...重复零次一次 {n} 重复n次 {n,} 重复n次更多次 {n,m} 重复n到m次 下面是一些使用重复例子: Windows\d+匹配Windows后面跟1个更多数字 ^\w+匹配一行第一个单词...这个表达式首先是一个单词,也就是单词开始处和结束处之间多于一个字母数字(\b(\w+)\b),这个单词会被捕获到编号为1分组,然后是1个几个空白符(\s+),最后是分组1捕获内容(也就是前面匹配那个单词...重复n次以上,但尽可能少重复 处理选项 在C#,你可以使用Regex(String, RegexOptions)构造函数来设置正则表达式处理选项。

    90520

    正则表达式30分钟入门教程

    好吧,现在我们说说正则表达式里单词是什么意思吧:就是不少于一个连续\w。不错,这与学习英文时要背成千上万个同名东西的确关系不大 :) \d+匹配 1个更多连续数字。...如果不使用^和$的话,对于\d{5,12}而言,使用这样方法就只能保证字符串里包含5到12连续位数字,而不是整个字符串就是5到12位数字。 字符转义 如果你想查找元字符本身的话,比如你查找 ....重复零次一次 {n} 重复n次 {n,} 重复n次更多次 {n,m} 重复n到m次 下面是一些使用重复例子: Windows\d+匹配Windows后面跟 1个更多数字 ^\w+匹配一行第一个单词...]+>匹配用尖括号括起来以 a开头字符串。 后向引用 使用小括号指定一个子表达式后,匹配这个子表达式文本(也就是此分组捕获内容)可以在表达式其它程序作进一步处理。...这个表达式首先是一个单词,也就是单词开始处和结束处之间多于一个字母数字 (\b(\w+)\b),这个单词会被捕获到编号为1分组,然后是1个几个空白符 (\s+),最后是分组1捕获内容(也就是前面匹配那个单词

    96130

    正则表达式30分钟入门教程--deerchao

    好吧,现在我们说说正则表达式里单词是什么意思吧:就是不少于一个连续\w。不错,这与学习英文时要背成千上万个同名东西的确关系不大 :) \d+匹配1个更多连续数字。...这里匹配是指是字符串里有没有符合表达式规则部分。如果不使用^和$的话,对于\d{5,12}而言,使用这样方法就只能保证字符串里包含5到12连续位数字,而不是整个字符串就是5到12位数字。...\D 匹配任意数字字符 \B 匹配不是单词开头结束位置 [^x] 匹配除了x以外任意字符 [^aeiou] 匹配除了aeiou这几个字母以外任意字符 例子:\S+匹配不包含空白符字符串...这个表达式首先是一个单词,也就是单词开始处和结束处之间多于一个字母数字(\b(\w+)\b),这个单词会被捕获到编号为1分组,然后是1个几个空白符(\s+),最后是分组1捕获内容(也就是前面匹配那个单词...重复n次以上,但尽可能少重复 处理选项 在C#,你可以使用Regex(String, RegexOptions)构造函数来设置正则表达式处理选项。

    1.9K40

    正则表达式速查

    匹配除换行符以外任意字符 \w 匹配字母数字 \s 匹配任意空白符 \d 匹配数字 \b 匹配单词开始结束 ^ 匹配字符串开始 $ 匹配字符串结束 转义符\ 当要查找元字符本身,如.*...反义(取反,不匹配) 表3.常用反义代码 代码/语法 说明 \W 匹配任意不是字母和数字字符 \S 匹配任意不是空白符字符 \D 匹配任意数字字符 \B 匹配不是单词开头结束位置 [^x]...exp),断言此位置后面不能匹配表达式exp。例如:\d{3}(?!\d)匹配三位数字,而且这三位数字后面不能是数字;\b((?!abc)\w)+\b匹配不包含连续字符串abc单词。 (?<!...贪婪与懒惰 当正则表达式包含能接受重复限定符时,通常行为是(在使整个表达式能得到匹配前提下)匹配尽可能多字符。 以这个表达式为例:a.*b,它将会匹配最长以a开始,以b结束字符串。...重复n次以上,但尽可能少重复 参考 https://deerchao.cn/tutorials/regex/regex.htm#charclass 一篇不错教程 https://blog.nowcoder.net

    45810

    教你正则表达式如何30分钟入门

    在编写处理字符串程序网页时,经常会有查找符合某些复杂规则字符串需要。正则表达式就是用于描述这些规则工具。换句话说,正则表达式就是记录文本规则代码。...“-”,最后是78位数字字符串(像010-123456780376-7654321)。...参考:https://deerchao.cn/tutorials/regex/regex.htm 二、入门正则表达式 最重要是——请给我30分钟,如果你没有使用正则表达式经验,请不要试图在30秒内入门...不幸是,很多单词里包含hi这两个连续字符,比如him,history,high等等。用hi来查找的话,这里边hi也会被找出来。如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。...这里,.是另一个元字符,匹配除了换行符以外任意字符。*同样是元字符,不过它代表不是字符,也不是位置,而是数量——它指定*前边内容可以连续重复使用任意次以使整个表达式得到匹配。因此,.

    55540

    Java 正则表达式

    捕获 把正则表达式中子表达式/分组匹配内容,保存到内存以数字编号显式命名组里,方便后面引用,从左向右,以分组左括号为标志,第一个出现分组组号为1,第二个为2,以此类推。...(\\d)(\\d)\\2\\1 思考题 请在字符串检索商品编号.形式如:12321-333999111这样号码,要求满足前面是一个五位数,然后一个-号,然后是一个九位数,连续每三位要相同 package...$ 有1~3位小数正实数:^[0-9]+(\.[0-9]{1,3})?$ 正整数:^[1-9]\d*$ ^([1-9][0-9]*){1,3}$ ^\+?...[1-9][0-9]*$ 负整数:^\-[1-9][]0-9"*$ ^-[1-9]\d*$ 负整数:^\d+$ ^[1-9]\d*|0$ 正整数:^-[1-9]\d*|0$ ^((.../> ( 首尾空白字符正则表达式:^\s*|\s*$(^\s*)|(\s*$) (可以用来删除行首行尾空白字符(包括空格、制表符、换页符等等),非常有用表达式) 腾讯QQ号:[1-9][0-9]

    1.1K40

    正则表达式使用笔记

    二、笔记 好用测试网站:https://regex101.com/ 特殊字符,使用时需要转义 { } [ ] / \ + * . $ ^ | ? 元字符 描述 ....(xyz) 字符集, 匹配与 xyz 完全相等字符串. | 运算符,匹配符号前字符. \ 转义字符,用于匹配一些保留字符 [ ] ( ) { } . * + ?...at/ => The fat cat sat on the mat 运算 对单个字符运算,可以使用字符集: /[aeiou]/ => hello world 或者使用运算符: /a|e|i|o|...u/ => hello world 但如果是多个字符,只能使用运算符: /apple|banana/ => i like apple and banana 捕获组 & 捕获组 捕获组: (x),捕获组...:foo){1,2}/匹配foo这个单词连续出现 1 到 2 次。如果写成/foo{1,2}/,则只会匹配最后一个o1 到 2 次,而不是整个单词。 先行断言 & 后行断言 符号 描述 例子 ?

    23010

    第一章 正则表达式字符匹配攻略

    两种模糊匹配 如果正则只有精确匹配是没多大意义,比如/hello/,也只能匹配字符串”hello”这个子串。...表示全局匹配,即在目标字符串按顺序找到满足匹配模式所有子串,强调是“所有”,而不只是“第一个”。g是单词global首字母。...表示除数字外任意字符。 \w就是[0-9a-zA-Z_]。表示数字、大小写字母和下划线。记忆方式:w是word简写,也称单词字符。 \W是[^0-9a-zA-Z_]。单词字符。...记忆方式:想想省略号…每个点,都可以理解成占位符,表示任何类似的东西。 如果要匹配任意字符怎么办?可以使用[\d\D]、[\w\W]、[\s\S]和[^]任何一个。 3. 量词 量词也称重复。...其中字符可以出现36次,需要是用量词和分支结构。 使用分支结构时,需要注意顺序。

    1.8K101

    linux基础(三)

    share/dict/linux.words 多少用户登录:who wc -l 9、sort(排序) -n 按数字排序 -r 倒叙 -k 指定列 sort -rn -k 3 -t 指定分割符 -u 删除重复行...后#行 包含当前行后续三行 -B # 前#行 -C # 前后各#行 -e 实现多个选项间逻辑or关系 grep -e 'cat' -e 'dog' file -w 整行匹配整个单词 -E 使用ERE...:] 空白字符 [:cntrl:] 不可打印控制字符(退格、删除、警铃) [:digit:] 十进制数字 [:xdigit:] [:graph:] 可打印空白字符 [:print:] 可打印空白字符...词尾锚定,用于单词模式右侧 \ 匹配整个单词 \(\) 分组,将一个多个字符捆绑在一起,当做一个整体处理 echo godgodgod grep -o "\(god\)\" 重复god2次 \1 表示从左侧起第一个左括号以及与之匹配右括号之间模式所匹配字符...反向引用:应用前面的分组括号模式所匹配字符,而非字符本身 或者\ ab : ab Ccat : Ccat (Cc)at :Catcat 2、扩展正则表达式 egrep = grep -E 次数匹配

    1.5K70

    iOS-正则表达式简单使用

    可以匹配“do”“does”“do”。?等价于{0,1}。 {n} n是一个负整数。匹配确定n次。...所获取匹配可以从产生Matches集合得到,在VBScript中使用SubMatches集合,在JScript使用$0…$9属性。要匹配圆括号字符,请使用“(”“)”。 (?...:pattern) 匹配pattern但不获取匹配结果,也就是说这是一个获取匹配,不进行存储供以后使用。这在使用字符“(|)”来组合一个模式各个部分是很有用。例如“industr(?...pattern) 正向否定预查,在任何不匹配pattern字符串开始处匹配查找字符串。这是一个获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!...例如,“er\b”可以匹配“never”“er”,但不能匹配“verb”“er”。 \B 匹配单词边界。

    1.6K70

    C#基础篇 - 正则表达式入门

    \w 匹配包括下划线任何单词字符。等价于 [A-Za-z0-9_]。 \W 匹配任何单词字符。等价于 [^A-Za-z0-9_]。 \s 匹配任何空白字符,包括空格、制表符、换页符等等。...\S 匹配任何空白字符。等价于 [^ \f\n\r\t\v]。 \b 匹配一个单词边界。...例如:'er\b' 可以匹配"never" 'er',但不能匹配 "verb" 'er'。 \B 匹配单词边界。...在.Net Framework 4.5 and 4.6版本,该命名空间下包括11个类,1个枚举,1个委托。 其中Regex类是使用最多一个类。它提供方法,如下4个静态方法最为常用。...通过下列方法可以完成简单字符串匹配、提取工作。提供静态方法是为了独立、单独地使用正则表达式,而不用显式创建Regex对象。

    87920

    Java正则表达式详解

    请在字符串检索商品编号,形式如:12321-333999111 这样号码,要求满足前面是一个五位数,然后一个-号,然后是一个九位数,连续每三位要相同 package com.hspedu.regexp...也可以使用一条语句 去掉重复字 我我要学学学学编程java!...=pattern) 执行正向预测先行搜索子表达式,该表达式匹配处于匹配 pattern 字符串起始点字符串。它是一个捕获匹配,即不能捕获供以后使用匹配。例如,‘Windows (?...pattern) 执行反向预测先行搜索子表达式,该表达式匹配不处于匹配 pattern 字符串起始点搜索字符串。它是一个捕获匹配,即不能捕获供以后使用匹配。例如,‘Windows (?!...\B 字边界匹配。“er\B"匹配"verb""er”,但不匹配"never""er"。 \cx 匹配 x 指示控制字符。例如,\cM 匹配 Control-M 回车符。

    941120

    iOS正则表达式,一篇就够了

    一、什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作一种逻辑公式。正则表达式可以检测给定字符串是否符合我们定义逻辑,也可以从字符串获取我们想要特定部分。...类似于 iOS8新方法- (BOOL)containsString:(NSString *)aString,搜索子串用。 ‘*’,’+'和’?'这三个符号,表示一个N个字符重复出现次数。...可以用大括号括起来({}),表示一个重复具体范围。...”"b”混合字符串后面跟一个”c”; 方括号”[ ]“表示在括号内众多字符,选择1-N个括号内符合语法字符作为结果,例如 “[ab]“:表示一个字符串有一个”a””b”(相当于”a|b”);...“ \w ”匹配包括下划线任何单词字符。等价于“[A-Za-z0-9_]”。 “ \W ”匹配任何单词字符。等价于“[^A-Za-z0-9_]”。

    4.5K110

    正则表达式用法简介与速查

    匹配任意单个字符(换行符除外) c.t 匹配:所有c和t之间隔一个字符文本,如:cat, cbt, cct, … [] 匹配字符集合一个字符 [abc] 匹配:abc [^] 对字符集合求...位置元字符 元字符 说明 补充说明 \b 匹配单词边界 \b 判断依据是:位置两边分别为 \w 和 \W \B \b 反义,匹配边界 \B 判断依据是:位置两边同为 \w 同为 \W \<...匹配单词开头 (扩展正则表达式,egrep支持) \> 匹配单词结束 (扩展正则表达式,egrep支持) ^ 匹配字符串开头 一般将整段文本视为一个字符串,可以和分行匹配模式组合使用 $ 匹配字符串结尾...(5) 回溯引用 说明: 有时我们想匹配文本连续出现2个重复单词,而不管单词内容是什么, 这种需求只能用子表达式回溯引用来实现。...解释: 正则表达式,\b(\w+)\b 表示匹配1个单词, [ ]+ 表示匹配其后1个多个空格,最后 \1 就是回溯引用前面的子表达式 (\w+) 匹配内容, 若 (\w+) 匹配到 white

    3.7K20

    (待整理完)正则表达式30分钟入门教程

    Regular Expression(regex、regexpRE):记录文本规则代码 很可能你使用过Windows/Dos下用于文件查找通配符(wildcard),也就是*和?。...不幸是,很多单词里包含hi这两个连续字符,比如him,history,high等等。用hi来查找的话,这里边hi也会被找出来。如果要精确地查找hi这个单词的话,我们应该使用\bhi\b。...这里,.是另一个元字符,匹配除了换行符以外任意字符。 *同样是元字符,不过它代表不是字符,也不是位置,而是数量——它指定*前边内容可以连续重复使用任意次以使整个表达式得到匹配。 因此,....\d+匹配1个更多连续数字。这里+是和*类似的元字符,不同是*匹配重复任意次(可能是0次),而+则匹配重复1次更多次。...匹配除换行符以外任意字符 \w 匹配字母数字下划线汉字 \s 匹配任意空白符 \d 匹配数字 \b 匹配单词开始结束 ^ 匹配字符串开始 $ 匹配字符串结束 元字符^(和数字6在同一个键位上符号

    64730

    第五章 正则表达式拆分

    也有 \d简写形式。另外还有反义字符组,表示可以是除了特定字符之外任何一个字符,比如 [^0-9],表示一个数字字符,也有 \D简写形式。...比如^匹配字符串开头,又比如 \b匹配单词边界,又比如 (?=\d)表示数字前面的位置。 分组,用括号表示一个整体,比如 (ab)+,表示"ab"两个字符连续出现多次,也可以使用捕获分组 (?...字符串长度是3倍数 此时正则不能想当然地写成 /^[abc]{3}+$/,这样会报错,说 +前面没什么可重复: ? 此时要修改成: ?...\:\-\,/; console.log( regex.test(string) ); // => true 其中 string \字符也要转义。...当然,匹配字符串也是"{,n}",测试如下: var string = "{,3}"; var regex = /{,3}/g;console.log( string.match(regex)[0]

    1.4K70
    领券