2011-12-02 37 views
0

我是新來的正則表達式,並試圖找出在scala中使用的東西。正則表達式新手

我試圖確定一個很長的字符串內的網址。我看了看周圍了很多,我已經找到了最好的是

val regex = """https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?""".r 

這使得然而,可以期望留下的東西,如「少了一些」>圖片」結尾。我試圖找出究竟發生了什麼我正則表達式是指這樣我就可以對它進行解剖,並當它擊中在.com/.org/.edu/.whatever.後的一個非字字符之停止。

我希望有人不介意解釋什麼是單個元素是在這個預先形成的正則表達式,以便我可以找出發生了什麼,並學習更多關於正則表達式。我已經通過了一兩個教程,發現了有些事情,但我所要求的,我認爲現在對我來說是非常寶貴的。

我得到的是:

  • ?後HTTPS意味着s是可選的
  • ?之後元素意味着他們可選
  • \w似乎意味着單詞字符
  • \d似乎意味着數字
  • .涵蓋大多數字符,除非被轉義

我不明白:

  • 如何我們要搞清楚的時候逃跑
  • 如何:作品或+
  • 什麼轉義字符是真的(我認爲這是一個反斜槓,但這似乎並沒有在這裏工作?)
  • 如何指定一個需求可以爲一個範圍的單詞,所以像字char不只是一個字符,但1-X字符

無論如何,我希望有人能夠指導我一個問題,而不是通過幫助解釋他們出現的各個元素來推動另一個教程。我會很感激。

regexlib有所幫助,並讓我:

val regex = """https?://\w+\.\w+\.\w+[\w/_\.\?=&:]+""".r 

的每一位,其中我明白了!

+1

http://regexlib.com/CheatSheet.aspx?AspxAutoDetectCookieSupport=1 –

+0

http://regexpal.com/是創建/學習正則表達式的好工具。它有一個完整的參考表,它可以在填寫正則表達式時實時選擇文本,這樣你就可以看到發生了什麼。 – Phil

+0

@phizzle這些是JavaScript的正則表達式,我們正在談論Java/Scala的正則表達式 –

回答

2

我覺得你的主要問題「>圖片被列入被更換的零件查詢HTML字符串

(\?\S+) 

的東西,不包括配套解決」 <>爲\ S確實

(\?[\w=$&.\-^@#~+%]+) 
相關問題