热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

检查当前单词之前是否有多个单词。-checkifmultiplewordsprecedecurrentword

Ihavestringsofthefollowingflavor:我有以下几种口味:RandomIncANon-RandomIncIwouldliketorem

I have strings of the following flavor:

我有以下几种口味:

Random Inc
A Non-Random Inc

I would like to remove the word Inc from all those strings wehre there are more than 1 word preceding it. The result on the above two examples would be:

我想从所有的字符串中删除,因为前面有超过一个词。以上两个例子的结果是:

Random Inc
A Non-Random

What is the right regex to plug into gsub for this? In particular, how does one specify complete words in regex? I thought it would be \w but this is a word character which does not seem correct.

什么是正确的regex插入到gsub为此?特别是,如何在regex中指定完整的单词?我原以为是\w,但这是一个看起来不正确的字字符。

3 个解决方案

#1


3  

\w matches a word character, but in this case it seems you need to account for the hyphen and use a quantifier.

\w匹配一个单词字符,但在这种情况下,似乎需要考虑连字符并使用量词。

x <- c('Random Inc', 'A Non-Random Inc', 'Another Inc', 'A Random other Inc')
sub('[\\w-]+ [\\w-]+\\K *Inc', '', x, perl=TRUE)
# [1] "Random Inc"     "A Non-Random"   "Another Inc"    "A Random other"

First we match any character of word characters, hyphen "one or more" times followed by whitespace followed by word characters, hyphen "one or more" times. The \K escape sequence resets the starting point of the reported match and any previously consumed characters are no longer included. Then we match whitespace "zero or more" times followed by the word Inc. Since we use \K, we use an empty replacement because \K acts as a zero-width assertion.

首先,我们匹配任何字符的字,连字符“一个或多个”时间,然后是空格,然后是单词字符,连字符“一个或多个”时间。\K转义序列重新设置所报告的匹配的起始点,不再包含以前使用的任何字符。然后我们匹配空格“0或更多”的时间,后面跟着单词Inc。由于我们使用了\K,我们使用了一个空的替换,因为\K充当了一个零宽度断言。

#2


1  

You can use a regex like this:

您可以使用这样的regex:

([-\w]+\s+[-\w]+)\s+Inc

Working demo

演示工作

enter image description here

#3


0  

I think you mean one or more non-space characters as complete word. If yes, then you could use \S+.

我想你的意思是一个或多个非空格字符作为完整的单词。如果是的话,你可以用\S+。

> x <- c('Random Inc', 'A Non-Random Inc', 'Another Inc', 'A Random other Inc')
> sub("^\\S+(?:\\s+\\S+)?$(*SKIP)(*F)|\\s+Inc\\b", "", x, perl=T)
[1] "Random Inc"     "A Non-Random"   "Another Inc"    "A Random other"
  • ^\\S+(?:\\s+\\S+)?$ Matches the line which has exactly one or two words.
  • ^ \ \ S +(?:\ \ S + \ \ S +)?$匹配正好有一两个字的行。
  • (*SKIP)(*F) Causes the match to Fail.
  • (*SKIP)(*F)导致匹配失败。
  • | OR (ie, consider only the remaining part of the string)
  • |或(即,只考虑字符串的其余部分)
  • \\s+Inc\\b Matche Inc and also the preceding one or more space characters.
  • \s+ \b \b Matche Inc以及前面的一个或多个空格字符。

推荐阅读
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 本文介绍了使用C++Builder实现获取USB优盘序列号的方法,包括相关的代码和说明。通过该方法,可以获取指定盘符的USB优盘序列号,并将其存放在缓冲中。该方法可以在Windows系统中有效地获取USB优盘序列号,并且适用于C++Builder开发环境。 ... [详细]
  • 正则表达式及其范例
    为什么80%的码农都做不了架构师?一、前言部分控制台输入的字符串,编译成java字符串之后才送进内存,比如控制台打\, ... [详细]
  • C语言的经典程序有哪些
    本篇内容介绍了“C语言的经典程序有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 摘要: 在测试数据中,生成中文姓名是一个常见的需求。本文介绍了使用C#编写的随机生成中文姓名的方法,并分享了相关代码。作者欢迎读者提出意见和建议。 ... [详细]
  • 总结一下C中string的操作,来自〈CPrimer〉第四版。1.string对象的定义和初始化:strings1;空串strings2(s1);将s2初始 ... [详细]
  • 利用空间换时间减少时间复杂度以及以C语言字符串处理为例减少空间复杂度
    在处理字符串的过程当中,通常情况下都会逐个遍历整个字符串数组,在多个字符串的处理中,处理不同,时间复杂度不同,这里通过利用空间换时间等不同方法,以字符串处理为例来讨论几种情况:1: ... [详细]
  • Ihavebeenworkingwithbufferingafileonmylocaldrivetoparseandobtaincertaindata.Forte ... [详细]
  • 导读:在编程的世界里,语言纷繁多样,而大部分真正广泛流行的语言并不是那些学术界的产物,而是在通过自由发挥设计出来的。和那些 ... [详细]
author-avatar
猫ranran
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有