从复选框格式中提取R中的文本

时间:2015-05-15 06:27:47

标签: regex r

我的文字如下:

x<-"Annual Turnover in Crores   ( )15-25Lacs ( )25-50 Lacs ( )50-75 Lacs ( )75Lacs to 1 Cr ( X ) 1-10 Cr ( )10-25Cr ( )25-50Cr ( )Above 50 Crs"

现在我们可以看到在1-10 Cr盒子之前检查了一下。如何让R提取已选中框的值?

我正在使用

A&LT; -sub(&#34; \(X)&#34;,x)的

1 个答案:

答案 0 :(得分:3)

您可以通过正则表达式中的简单模式实现您想要的目标:

regmatches(x,regexpr("(?<=\\( X \\))[^\\(]+",x,perl=TRUE))
#[1] " 1-10 Cr "

以下是模式的构建方式。

  • (?<=something)告诉在something之后查找字符串的一部分。在这种情况下,我们希望照顾( X )。由于()符号是正则表达式中的特殊字符,因此我必须通过\\来逃避它们。

  • [^\\(]+部分告诉您获取所有不是(的字符。这是因为下一个&#34;复选框&#34;值以(开头。再一次,我不得不逃避这个符号。

  • 需要perl=TRUE参数,否则在模式开头定义的背后不会有效。

希望这澄清一点。

相关问题