scala - regexp_extract 正在获取空格
问题描述
我有这个样本数据来测试regexp_extract
功能。
message_txt="test 9341Come Products Preferred*TEST*TEST, the mfg SYSTEM, paid18.26 toward the"
message_txt="mfg of TR tt 100 test, paid $861.82 toward your "
message_txt="TEST 0.015% , paid $1119.00toward your "
我需要提取“payed”和“toward”之间的数值,即18.26、861.82和1119.00。我执行以下语句
regexp_extract(col("message_txt"),"(?i)paid\\s+(.*?)\\s+(?i)toward",1)
...但只有空格。
解决方案
我不知道regexp_extract()
,但在我看来它像...
- 您不希望
$
出现在结果中,因此您需要将其移到捕获组之外。 - 目标之前/之后并不总是有空格,因此
\\s
需要是可选的。 - 有 2nd 没有意义
(?i)
。 - 通常最好准确描述捕获组中允许的内容。
尝试类似:"(?i)paid\\s*\\$?([\\d.]+)\\s*toward"
推荐阅读
- r - 为什么 sparklyr 函数 spark_read_csv 需要这么长时间并最终刹车?
- javascript - 数据变量返回为 __ob__
- java - 如何强制 Java 编译器只编译我指定的源文件?
- python - 如何将 request.user 正确发送到模型表单?
- c# - 为什么 dapper 在进行选择时为 Guid 返回全零,但表中的 guid 值设置正确?
- haskell - 字符串的二进制表示
- python - Pandas 根据条件提取行,但保留旧行索引
- android - AOSP 汽车方向改变
- javascript - 如何在 p5.js 中跟踪两种颜色?
- c# - Azure Active Directory 在注销时跳过帐户选择