在這樣一行AWK模式匹配
21zCases-外設組合LOGITECH 176-83-LODMK250 LOGITECH 無線桌面MK250 920-002653 920-002653ΔΙΑΘΕΣΙΜΟ16,90 0,24 22,82
我試圖用/^[0-9]\{2,3\}-[0-9]\{2,3\}-*/)print $i
提取/176-83-LODMK250/
但不工作。
有些建議?
謝謝。
在這樣一行AWK模式匹配
21zCases-外設組合LOGITECH 176-83-LODMK250 LOGITECH 無線桌面MK250 920-002653 920-002653ΔΙΑΘΕΣΙΜΟ16,90 0,24 22,82
我試圖用/^[0-9]\{2,3\}-[0-9]\{2,3\}-*/)print $i
提取/176-83-LODMK250/
但不工作。
有些建議?
謝謝。
^開始時會嘗試在字符串的開頭找到它,而不是這種情況。此外,表達式末尾的*將匹配到字符串的末尾。
正如d-live所述,您需要刪除^。 ^匹配「整個字符串的開始」(即在你的例子中的「21zCases」之前),而不是「匹配的字符串的開始」。
我相信這是你在找什麼:
/[0-9]{2,3}-[0-9]{2,3}-[^[:space:]]*/
下面的正則表達式的作品,
echo "21zCases-Peripherals Combo LOGITECH 176-83-LODMK250 LOGITECH WIRELESS DESKTOP MK250 920-002653 920-002653 ΔΙΑΘΕΣΙΜΟ 16,90 0,24 22,82" | grep -i "[0-9]\{2,3\}-[0-9]\{2,3\}-.*"
您好! ^在開始時是這樣的,因爲我需要字符串開頭的數字不[a-z] – user754863 2011-05-15 22:32:32
目標字符串不**開始與您所需的字符串。所以在正則表達式中有^是永遠不會匹配的。嘗試從表達式中移除^符號,您將看到一個匹配項。 – 2011-05-15 22:45:45
是的,但我想只用數字開始而不是[az] .thank you – user754863 2011-05-15 23:48:41