我今天早些时候需要一个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