HTML предназначен для семантического представления контента на сайте, CSS - для визуального оформления этого контента. Именно из-за этого браузеры и не могут производить поиск по контенту псевдоэлементов (ну а еще это связано с самим предназначением псевдоэлементов).
Решение можно найти с помощью JS (Спойлер: поиск, удаление, подстановка и вообще работа с DOM-деревом).
Совет лично от меня: лучше через ::before никакие семантически-важные для страницы данные не передавать, ведь CSS - это про стили, а не про текст.