regex - 直到下一个空格的条件的正则表达式

标签 regex r

我如何编写一个正则表达式来抓取位于任意位置的大写字母,然后是任何后续字符,直到空格?

输入: 蛋糕派类型APPLE CRUMBLE挞 toast 德克萨斯州价格

例如,我想抓取“APPLE”,尽管它前面没有空格。我想要“崩溃”。我还想要“Texas”,尽管并非所有组成部分都是大写的。

我将使用gsub(pattern, replacement = "", x = string)来获得以下输出

输出: 蛋糕派型挞 toast 价格

谢谢!

最佳答案

您可以使用regmatches来提取这些子字符串。

> x <- 'cake pietypeAPPLE CRUMBLE tart toastTexas price'
> regmatches(x, gregexpr('[A-Z]\\S+', x))[[1]]
# [1] "APPLE"   "CRUMBLE" "Texas" 

或者,如果您只想严格匹配字母字符。

> regmatches(x, gregexpr('[A-Z][A-Za-z]+', x))[[1]]

如果您想替换它们,我会使用以下内容来避免单词之间留下多余的空格。

> gsub('[A-Z][A-Za-z]+( [A-Z][A-Za-z]+)*', '', x)
# [1] "cake pietype tart toast price"

关于regex - 直到下一个空格的条件的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25773626/

相关文章:

java - 用于检查字母数字字符串的正则表达式不起作用

java - 正则表达式:如何提取 <@U34|firstname name|F>

Python如何使用re获取网站中的特定代码

R tikzdevice : How to use sans serif font

r - 使用 dplyr 将 ColSum 添加到 r 中的向量

r - 大型数据集中的选择/投影/分组

c# - 在食物成分文本中查找 "E numbers"的正则表达式

r - 在 RSelenium 中打开一个新选项卡

r - tm 包函数在清理语料库时没有删除引号和连字符

Java正则表达式,用于字符串中任意位置的恰好5位数字