Мне нужно отфильтровать все строки со словами, начинающимися с буквы, за которой следуют ноль или более букв или цифр, но никаких специальных символов (в основном имен, которые могут использоваться для переменной C++).Регулярное выражение Сценарий оболочки Unix
egrep '^[a-zA-Z][a-zA-Z0-9]*'
Это прекрасно работает для таких слов, как «а», «AB10», но он также включает в себя такие слова, как «b.b». Я понимаю, что * в конце выражения проблема. Если я заменю * на + (один или несколько), он пропускает слова, содержащие только одну букву, поэтому это не помогает.
EDIT: Я должен быть более точным. Я хочу найти строки с любым количеством возможных слов, как описано выше. Вот пример:
int = 5;
cout << "hello";
//some comments
В этом случае он должен печатать все вышеуказанные линии, поскольку все они включают в себя по крайней мере одно слово, которое соответствует описанным условиям, и линия не должна начала с буквой.
Проблема в том, что^относится к началу строки, но вас интересует любая строка, содержащая слово. Я предлагаю редактировать. – JXG