2016-09-14 211 views
-1

我有字符串列表,需要找到正則表達式後面跟這些字符串。例如,我有10個字符串,其中3個是電子郵件,2個是數字,5個是字母數字。我不想保留固定的正則列表,並保留匹配的字符串並告訴用戶有關他們的數據。 至少如果我能找到它們後面的一般模式。 我正在尋找一些Java庫。如何從字符串中提取正則表達式

+1

示例輸入/輸出預期請 –

回答

0

所以....這取決於你在執行本什麼語言,它可以很容易或有些幾乎是不可能的。

要匹配的字符串,您通常只是做

/(\w)+/g which will eat all characters 

如果你想匹配的字母數字字符串(再次,打破空間),你可以做這樣的事情

([a-zA-Z0-9])+ 

匹配的電子郵件是極其複雜的,但在HTML5實現的規則看起來是這樣的(雖然它可能會漏掉一些國際字符,而不是100%準確,它是99%左右的準確)

/([a-zA-Z0-9.!#$%&'*+=?^_\`{|}~-][email protected][a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)/i 

如果您有更具體的事情要做,請隨時發表評論。

+0

我希望在Java中使用的語言。問題是我不想指定大量的正則表達式,並讓用戶知道最可能的字符串正則表達式。如果我能找到任何需要字符串作爲輸入的庫,併爲該字符串提供了最具體的正則表達式。我可以理解,對於一個字符串,有很多正則表達式滿足該字符串。但只要嘗試一下,如果有一些圖書館存在可以解決我的目的。 – Shiva

+0

這是一個奇怪的用法....有正則表達式在線建設者,但從理論上來說,匹配任何字符串的最快捷方式總是將\ w \ W,也許一些\ d \ D \ s和\ S。要智能地構建正則表達式真的很困難。例如,字符串「abc123」將匹配正則表達式([ac] {0,3} \ d +),\ w + {0,3} \ d +,\ w +,abc123,。*(?=。* \ w)3等等等等。你如何構建一個正則表達式的想法是真正紮根於你需要捕獲的東西,以及你的特定字符串的模式是什麼,這通常是根據比正則表達式本身如何生成更多的字符串來決定的 –

相關問題