Если вы обрабатываете файл построчно, это регулярное выражение будет делать то, что вы хотите:
((?:(?!//).)*)(//.*)
или просто:
(.*?)(//.*)
Т.е., группа 1 содержит abc/def
, а группа 2 содержит //comment
.
Имейте в виду, что когда это не удается, со строковыми литералами и многострочными комментариями (назовите только два пит-фолла):
"a string with // in it"
/*
// not a comment!
*/