[英]regular expression to extract number from string
我想從字符串中提取數字。 這是字符串
#all/30
我只想要30
。 如何提取? 我嘗試使用:
echo "#all/30" | sed 's/.*\/([^0-9])\..*//'
但是什么也沒發生。 我應該如何寫正則表達式? 對不起,英語不好。
您可以考慮使用grep從這樣的簡單字符串中提取數字。
echo "#all/30" | grep -o '[0-9]\+'
-o
選項僅顯示與模式匹配的匹配部分。 您可以嘗試以下sed命令,
$ echo "#all/30" | sed 's/[^0-9]*\([0-9]\+\)[^0-9]*/\1/'
30
[^0-9]*
[^...]
是一個否定的字符類。 它匹配任何字符,但不匹配否定字符類中的任何字符。 [^0-9]*
匹配零個或多個非數字字符。 \\([0-9]\\+\\)
捕獲一個或多個數字字符。 [^0-9]*
匹配零個或多個非數字字符。 30
echo "all/30" | sed 's/[^0-9]*\/\([0-9][0-9]*\)/\1/'
避免寫“。*”,因為它會消耗整個字符串。 默認匹配項總是貪婪的 。
echo "all/30" | sed 's/[^0-9]*//g'
# OR
echo "all/30" | sed 's#.*/##'
# OR
echo "all/30" | sed 's#.*\([0-9]*\)#\1#'
沒有更多關於可能的輸入字符串的信息,我們只能假設結構為#all/
后跟數字(僅)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.