2015-04-04 43 views
-4

我在尋找序列號。是否有可能使用grep找到它?如何查找字符串像**** - ****** - ****** - **** using grep?

+0

什麼背景?你是否試圖在文件中找到這些字符串?你在使用bash嗎,還是使用編程語言處理文件? 'grep'和正則表達式:例如看到這裏:[http://www.robelle.com/smugbook/regexpr.html](http://www.robelle.com/smugbook/regexpr.html) – 2015-04-04 10:20:33

+0

請看看[如何創建一個最小,完整且可驗證的示例](http://stackoverflow.com/help/mcve)。 – Cyrus 2015-04-04 10:47:02

回答

1

在正則表達式中,.表示「此處爲任何字符」,並且在字符類([...])之外,-沒有特殊含義。所以:

....-......-......-.... 

...會是你正在尋找的表達。

1

隨着GNU的grep:

echo "foo-bar abcd-abcdef-abcdef-abcd foo bar" | grep -oE '.{4}-.{6}-.{6}-.{4}' 

輸出:

 
abcd-abcdef-abcdef-abcd 
0

序號只有字母和numericals ..沒有特殊字符,新的生產線等。

您可以使用:

\w{4}-\w{6}-\w{6}-\w{4} 
0

假設序號數字是AZ和0-9這是序列號ABC1-A1B2C3-A3B2C1-123A正確的正則表達式:

[A-Z0-9]{4}-[A-Z0-9]{6}-[A-Z0-9]{6}-[A-Z0-9]{4} 

AZ指從A到Z

任何資本性質0-9任何數量的從0到9

{4}裝置4個字符

例如,如果序列號看起來像這樣:

1234-ABCDEF-ABCDEF-1234 

那麼你的正則表達式應該是這樣的:

[0-9]{4}-[A-Z]{6}-[A-Z]{6}-[0-9]{4} 

你應該嘗試使用www.regex101.com構建您的正則表達式