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