2015-02-23 64 views
-5

我是新來編寫正則表達式的。我做了一點點研究,並與此正則表達式的字符串上來:請檢查這個正則表達式

7.0 GB的高速數據加上無限制的^通話&文本(69.00)

難道我任何接近的正確嗎?

^(\\d{1}\\.\\d{1} \\s [G.t] \\s (\\d{2}\\.\\d{2})$ 
+0

你測試過了嗎?你看到了什麼結果?你使用哪種語言的正則表達式? – skrrgwasme 2015-02-23 22:25:48

+0

我沒測試過,我該如何測試它? Java – 2015-02-23 22:29:34

+0

此網站對於快速測試非常有用:https://www.regex101.com/。至於你的正則表達式,它甚至不是有效的。你有更多(''而不是''''')。 – 2015-02-23 22:32:33

回答

0

這取決於語言(有輕微的變化)。 正則表達式(正則表達式)用於查找字符串中的匹配項。 第一部分是關閉的,但{1}是必要的,不需要分組(使用括號)。
"^(\d{1}\.\d{1}..." --> "^\d\.\d..."(你也可以使用[0-9]代替\d
中間部分可以由相當簡單,只需.+
最後一節稍微偏離。對齊用於分組,所以要匹配它們,你必須使用escape char()
"...(\d{2}\.\d{2})" --> "...\(\d{2}\.\d{2}\)$"
正則表達式可能會讓人困惑,但在使用它時會帶來很多樂趣。爲了練習,我嘗試着想出幾個正則表達式,它們可以與電子郵件中的一些隨機文檔或文檔名稱或網站上的產品名稱相匹配。 保持練習。他是一個很好的參考(從一個小谷歌搜索發現)http://www.zytrax.com/tech/web/regex.htm

^\d\.\d.+\(\d{2}\.\d{2}\)$

讓我知道如果您有任何問題 - 享受。

+0

我用\ d代替[0- 9]。但是,謝謝你的推薦,這真的很好。 – 2015-02-23 22:58:26

1

要逐字匹配字符串可以使用:

^7\.0 GB of High-Speed Data Plus Unlimited\^ Talk & Text \(69\.00\)$ 

現在你可以替換\ d {X}每一個數字,其中x是數字相匹配的號碼。

^\d{1}\.\d{1} GB of High-Speed Data Plus Unlimited\^ Talk & Text \(\d{2}\.\d{2}\)$ 

現在你可以用\ d

^\d\.\d GB of High-Speed Data Plus Unlimited\^ Talk & Text \(\d{2}\.\d{2}\)$ 

現在,您可以取代一些文本替換爲\ d {1}。*並GB之間的文本(

^\d\.\d GB.*\(\d{2}\.\d{2}\)$ 

匹配現在,您可以GB後添加\ S以便GB

^\d\.\d GB\s.*\(\d{2}\.\d{2}\)$ 
後必須有至少一個空格字符
+0

真棒...謝謝... :) – 2015-02-23 23:42:48

+0

我認爲這是我見過的正則表達式問題的最佳答案。人們很少解釋如何構建正則表達式,他們只是提供它。做得好。 – skrrgwasme 2015-02-24 04:34:28