2013-01-14 72 views
0

我需要一個正則表達式來匹配字符串中前兩個字符之後的所有內容。正則表達式匹配除前兩個字符以外的所有內容

對於實施例(原始字符串首先列出,然後我想什麼匹配):

AZ0bc1234 > 0bc1234 
50def123 > def123 
[email protected] > hijk1234 

所有重要的是位置,任何字符(字母數字與符號)可以被包括在原始串。

我試過很多東西,但是我嘗試的所有東西都匹配前兩個字符中的至少一個。我最近來的是使用\B.*來匹配除第一個字符以外的所有內容。

+0

我會仔細看看它,但同時你可能會發現這個鏈接很有用www.regexlib.com – CHill60

+0

你使用什麼語言?你確定你需要使用正則表達式嗎?例如,如果您使用PHP,則可以使用'substr()'函數。 –

+0

我知道有這樣做的更簡單的方法,但我很好奇,如果它在理論上可能只使用正則表達式。 –

回答

6

如果你想要的一切,但前兩個字符,你可以試試這個(捕獲高達每行的末尾):

".{2}(.*)$" 

你是第一批後(括號中)。或者有所不同:

"(?:.{2})(.*)$" 
+1

@Aphelion羣組在這裏是必需的。你不能在'javascript'中使用'lookbehind' – Anirudha

+0

由於lookbehind在JavaScript中不受支持,所以似乎實際上不可能在前兩個字符之後匹配所有內容。所以,@ Some1.Kill.The.DJ是對的,使用組是必需的,並且一個非捕獲組「(?:。{2})(。*)$'可能是解決這個問題的最好方法。使用其他語言,@ Aphelion的解決方案'(?<=。{2})(。*)$'可能效果最好。謝謝! –

2

您正在尋找一個positive lookbehind。這將只有匹配你請求的部分。

(?<=.{2})(.*)$ 

你已經更新了你的問題,寫你自己使用JavaScript。 Lookbehind在JavaScript中不受支持。不過,我會留下這個答案以備將來的搜索結果。

+0

lookbehind在javascript中不支持 – Anirudha

+0

@ Some1.Kill.The.DJ啊。最初這個問題沒有提到。謝謝 – Aphelion

+0

感謝您的迴應。 –

0

下面將持有capturing group匹配的字符串(用括號定義):

^.{2}(.+) 

你應該能夠與根據語言$1\1使用它。

相關問題