正则表达式在 R 中的逗号之前或之后提取数据

Regex extraction data before vs after comma in R

我是正则表达式初学者,因为我通常不处理文本。我有一个非常简单的问题。我设法构建了以下正则表达式以在逗号后提取数据:

sub('.*,\s*','', X)

其中 X 是我正在搜索的列。

我现在想单独提取逗号前的数据,但正在为正则表达式语法苦苦挣扎。感谢帮助。

下面的表达式:

sub('\s*,.*','', X)

用空字符串替换从最后一个逗号到行尾的所有内容。因此,它将 return 字符串中最后一个逗号之前的文本。

你的正则表达式

sub('.*,\s*','', X)

不是提取文本,它是第二个参数替换第一个匹配的内容。因此,在 X 中匹配一堆字符后跟逗号后跟 space 字符的所有内容都将被此 regex.

中的任何内容替换

您可以在上面链接的演示中看到您正在点击的内容。我不确定你想要达到什么目的,但如果你想匹配文本中逗号之前的文本,this 正则表达式将匹配它,这里是你如何将它替换为你以前的替换在你的 sub

X2 = "here is another test string, with following text"
Y <- sub('.*(,.*)','', X2)

屈服

> Y
[1] ", with following text"

在 R 中,您的代码生成:

X = "here is a test string, "
Y <- sub('.*,\s*','\1', X)

屈服

> Y
[1] ""