如何使用正则表达式在两行之间提取相关文本

时间:2015-08-07 12:46:57

标签: regex r regex-negation regex-lookarounds regex-greedy

Berat: 0.25kg
Rp 115.000
Jumlah:
Beli
Ke Dafta

这里我想提取Rp 115.00并注意权重0.25 kg是可变的

我正在尝试

\b.*\n\K.*(?=\n*\n)

但它给了我" Rp 115.00"和" Jumlah:" Rp有多个条目,例如Rp 10,文本中的Rp 400,但我只想提取" Berat"和" Jumlah" 。这些数字也是可变的 PS-我正在寻找带有正则表达式的解决方案

1 个答案:

答案 0 :(得分:2)

假设

  

我只想提取Rp 115.000

您可以使用gsub(?s).*(Rp\\s+\\d+\\.\\d+).*正则表达式从文本中提取它:

gsub("(?s).*(Rp\\s+\\d+\\.\\d+).*", "\\1", s, perl=T)
##[1] "Rp 115.000"

请参阅demo

.*将匹配任何符号(即使是由(?s)修饰符引起的换行符),Rp\\s+\\d+\\.\\d+也会匹配模式 Rp + 空白< / em> + number + + number