如果这是测试字符串 -
alt="mass |36 grams\nserving volume | 63 mL (milliliters)\nserving density | 0.57 g\/cm^3 (grams per cubic centimeter)" title="mass | 36 grams.
\btitle="mass| \b.*+\s*+\K.*(?=serving volume\b)
这是我的代码,但它不会返回所需内容。 那么如何从这个文本中提取36克?
如果有人可以分享我可以学习正则表达式的链接,那就太好了。
答案 0 :(得分:2)
gsub('mass \\|([0-9]*).*', '\\1', alt)
[1] "36"
排除单位:
gsub('mass \\|([0-9]* ).*', '\\1', alt)
[1] "36 "
注意额外的空间,它也会被捕获。这不是你想要的:
clearAndShow()
答案 1 :(得分:1)
对于您提供的示例,这将有效,但根据您的目的,您可能需要更通用的内容:
alt<-"mass |36 grams\nserving volume | 63 mL (milliliters)\nserving density | 0.57 g/cm^3 (grams per cubic centimeter)"
gsub(".*\\|([0-9]+ gram).*","\\1",alt)
[1] "36 gram"
答案 2 :(得分:1)
您尝试过:
/mass \|([a-zA-Z-0-9\s]+)\sserving volume/