正则表达式提取部分字符串

时间:2016-10-04 22:42:19

标签: r regex

我有以下字符串

> ma1.andl_4_1000x20x20_k1=1,k2=2,k3=1.csv.

我需要提取k1=1,k2=2,k3=1部分。我在R中使用substr()来提取。

substr(str, 23, nchar(str) - 4)

但是我正在寻找一个正则表达式来提取值。

1 个答案:

答案 0 :(得分:0)

如果你需要在Jota指出时提取k1=1,k2=2,k3=1的substr,如果它是如此具体的字符串,那么他的解决方案就是你想要的。

对于“kx=y,ka=b,kj=k你需要Capture a Repeated Group的广义解决方案,您的群组kx=y, x是任意数字,{{1}是任何数字和y。为简单起见,我省略了点,

<强> REGEX

.

<强> BREAKDOWN

((?:k\d{1,}=\d{1,}(?:,|\.)?)+) - 开启捕捉支架

( - 打开非捕获括号,这将重复捕获整个模式

(?: - 胆量,允许k\d{1,}=\d{1,}

kx=y - 匹配逗号和最后一个点,以便匹配(?:,|\.)的整个模式

kx=y(?:,|.) - 关闭非捕获括号,重复此模式以捕获整个组

)+ - 关闭捕捉括号

......你已经完成了。正则表达式将起作用,但我根本不使用),因此无法测试。

阅读链接,整个网站对正则表达式非常有用。