我今天早些時候需要一個utililty函數來從文件中去掉一些數據,並寫一個appaling常規表達式來完成它。輸入是與許多線的與所述格式的文件:正則表達式教程,我該如何改進這個
<address> <11 * ascii character value> <11 characters>
00C4F244 75 6C 74 73 3E 3C 43 75 72 72 65 ults><Curre
我想去掉一切在端杆的11個字符,並用於下面的表達式:
"^[0-9A-F+]{8}[\\s]{2}[0-9A-F\\s]{34}"
這匹配於我不想從原始字符串中刪除的位。我想看看你會怎麼做,但我不能工作的特定領域是:
1:使正則表達式引擎返回我想要的字符,而不是我沒有的字符和
2:找到一種重複匹配的方法,在一個單一的ASCII值後加空格(例如「75」= [0-9A-F] {2} [\ s] {1}?)並重復11次而不是抓取34個字符。
再看一遍最簡單的事情就是匹配每個輸入行的最後11個字符,但這不是很靈活,爲了學習正則表達式我想看看你如何匹配從序列的開始。
編輯:謝謝你們,這是我想要的東西:
"(?:^[0-9A-F]{8} )(?:[0-9A-F]{2}){11} (.*)"
希望我可以把你的綠色不止一個。
帶有後視聲明的人會導致可怕的回溯。不要使用它。 – Gumbo 2009-02-24 15:16:46