如何使用正则表达式在两行之间提取相关文本
How to extract relevant text between two lines using regex
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- 我正在寻找使用正则表达式的解决方案
假设
I only want to extract Rp 115.000
您可以使用带有 (?s).*(Rp\s+\d+\.\d+).*
正则表达式的 gsub
从文本中提取它:
gsub("(?s).*(Rp\s+\d+\.\d+).*", "\1", s, perl=T)
##[1] "Rp 115.000"
见demo
.*
将匹配任何符号(甚至是由于 (?s)
修饰符导致的换行符)并且 Rp\s+\d+\.\d+
将匹配模式 Rp + 空白 + 数字 + . + 数字.
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- 我正在寻找使用正则表达式的解决方案
假设
I only want to extract Rp 115.000
您可以使用带有 (?s).*(Rp\s+\d+\.\d+).*
正则表达式的 gsub
从文本中提取它:
gsub("(?s).*(Rp\s+\d+\.\d+).*", "\1", s, perl=T)
##[1] "Rp 115.000"
见demo
.*
将匹配任何符号(甚至是由于 (?s)
修饰符导致的换行符)并且 Rp\s+\d+\.\d+
将匹配模式 Rp + 空白 + 数字 + . + 数字.