我有一个像
这样的行的文件text text text 3424 text text 3423 50 US text 342 text
我想要匹配的是 50 US
(是的,美元)并最终提取该数字。
其他所有内容都会在不同的行中发生变化,可能会有更多文字或更少的文字,但在每一行中只有一个“US”锚点可以匹配。
所以我想要的是找到一种方法来匹配 US
并获取前3或4个字符。
有什么想法吗?最好使用sed / awk,但任何解决方案都可以。
答案 0 :(得分:1)
Perl正则表达式(或任何理解非贪婪.*?
表达式的东西)比sed更容易:
perl -pe 's/^.*?(\d+\.?\d*)\s*US.*$/$1/'
这也将处理“11.23”之类的事情。
答案 1 :(得分:0)
\d+ US
这应该有效,因为美国只在字符串中出现一次。
答案 2 :(得分:0)
答案 3 :(得分:0)
这是您可以在VBA正则表达式中使用的,它也支持前瞻:
" ((.+)(?= US))"