2011-06-11 53 views
1

我想從此字符串中獲取單詞「1.23」。匹配某個表達式後獲取單詞

該字符串爲

「1美元爲SGD 1.23」。

我知道正則表達式可以找到單詞,但我想要得到SGD後的數字是「1.23」。

謝謝。

+0

什麼環境(語言),你在運行?你的問題被標記爲'grep',但據我所知,grep只能返回完整的行。另外,不同的正則表達式實現使用不同的語法。 – 2011-06-11 21:07:47

+0

Grep可以使用'-o'開關返回比完整行更多的行,例如'$ echo 1 USD以1.23新加坡元| grep -o [0-9] \。[0-9] [0-9]' – 2011-06-11 22:37:02

+0

你需要一個正則表達式嗎?如果其字符串「cut」或「awk」的最後部分是更好的解決方案。 – 2011-06-11 22:49:30

回答

1

正則表達式可能是這樣的:\bSGD\s+(\d+(?:\.\d+)?),但什麼與grep的作品我不知道。

用Perl你可以做類似grep的東西:

cat foo.txt | perl -n -e '/\bSGD\s+(\d+(?:\.\d+)?)/ && print "$1\n"' 
+1

無用的貓獎http://partmaps.org/era/unix/award.html ;-) – 2011-06-11 22:33:36

+0

謝謝! ;)(如果他正在用管道連接grep,那麼就使用管道。) – Qtax 2011-06-12 21:31:51

1

工程與-P(用於Perl regular expression):

grep -P "(?<=\bSGD)\s*1\.23" 
相關問題