我有以下字符串
> 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)
但是我正在寻找一个正则表达式来提取值。
答案 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(?:,|.)
- 关闭非捕获括号,重复此模式以捕获整个组
)+
- 关闭捕捉括号
......你已经完成了。正则表达式将起作用,但我根本不使用)
,因此无法测试。
阅读链接,整个网站对正则表达式非常有用。