您好我正在尝试使用正则表达式在linux上使用grep命令过滤多个文件的内容,我正在尝试实现的是获取所有匹配(货币或值由ocr进程)
1 - 可能会也可能不会以一个空格开头
[[:space:]]\{1\}
2 - 然后它必须包含一个字符或一个空格
[Ss5$\s]\{1\}
3 - 最后必须有0到9之间的数字范围和字符,。
[0-9,.]\+
但看起来这个表达并没有涵盖像
这样的几种可能性 192,753.50
使用正则表达式:
[[:space:]]\{1\}[Ss5$\s]\{1\}[0-9,.]\+
由于
示例输出
Example:
--------------------------------------------------------------
.D. OF c.B. socmvo 14,255.34 14,255.34 MN 031042013 0.00 Move
$92,300.01 $35,333 0533110: 539101043401”
192,753.50 192,753.50 MN 037042013 0.00 Moves
51111703041211.1215 $09
s9,247.16 $9,247.16 1.111
Current:266,768.54 USD
Total:S277.777.35 USD
Approval S277.777.35 USD
--------------------------------------------------------------
Result:
14,255.34
14,255.34
$92,300.01
$35,333
539101043401
192,753.50
$9,247.16
Desired:
14,255.34
14,255.34
$92,300.01
$35,333
539101043401
192,753.50
192,753.50
s9,247.16
$9,247.16
266,768.54
S277.777.35
答案 0 :(得分:1)
它不适用于您的示例,因为您的正则表达式不正确,但它不包含字符。
如果你想要你的字符串首先包含一个字符或一个空格,你需要指定字符的类型,如果它是一个单词字符,你可以使用\w
和...对于其他情况,那么你可以使用一个字符类比如[\w ]
。
最后你可以使用以下正则表达式:
[[:space:]]\{1\}[\w ][0-9,.]\+[\w+ ]