我必須識別.c文件中的某些字符。現在我不得不承認#define行,但我想排除定義後的評論。例如:Java中的正則表達式解釋source.c文件
#define KERNEL_VERSION(a,b,c) ((a)*65536+(b)*256+(c)) /* We're doing kernel work */
我有這方面的結果:
group1="KERNEL_VERSION"
group2="(a,b,c) ((a)*65536+(b)*256+(c)) /* We're doing kernel work */"
我想擺脫/* We're doing kernel work */
我已經嘗試了一切我無法擺脫它。下面是我在哪裏:
Pattern cdef = Pattern.compile("^#[\\t ]*define[\\t ]+(\\w+)[\\t ]*(.*)",Pattern.DOTALL);
我曾嘗試加入^[\\/\\*\\w+]
或[\\t ]+^\\/+\\*\\w*\\
.....字符串的結束,但無論是我失去所有的第二組,或者什麼也不做
非常感謝,
!!!!編輯:我想找到一種方法來消除C評論,所以:/ *評論* /從模式
編輯2:我看到它的方式我認爲它應該有一種方法來給出以下建議: 「如果你發現‘/ ’,不採取任何東西,我讀通過行的文件行,以便無論是後/可以扔掉:
這是我處理第二組:「......()」所以我嘗試添加^ [\/\]在我的字符串的結尾,但它不工作,我失去了整個第二部分
我沒有解決方案。想想很難實現。我在這裏問了類似的東西:http://stackoverflow.com/questions/5374843/regex-to-find-an-uncommented-println。看一看。 – Heisenbug
謝謝,但它不完全相同,因爲基本上你正在搜索System.out ...但我正在搜索的是/ * xxxx */ – vallllll