У меня есть следующая строка:
Lorem ipsum Test dolor sit amet, consetetur sadipscing elitr, sed diam nonumy <a href="#" onclick="location.href='http://Test.com/url'; return false;">Test</a> eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd sed Test dolores et ea rebum. Stet clita kasd gubergren, no sea <a href="#" onclick="location.href='http://url.com'; return false;">Test xyz</a> takimata sanctus est Lorem ipsum dolor sit amet.
Теперь я бы заменил строку "Test" вне тегов, а не между тегами (например, заменил на "1234").
Lorem ipsum 1234 dolor sit amet, consetetur sadipscing elitr, sed diam nonumy <a href="#" onclick="location.href='http://Test.com/url'; return false;">Test</a> eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd sed 1234 dolores et ea rebum. Stet clita kasd gubergren, no sea <a href="#" onclick="location.href='http://url.com'; return false;">Test xyz</a> takimata sanctus est Lorem ipsum dolor sit amet.
Я начал с этого регулярного выражения: (?!<a[^>]*>)(Test)([^<])(?!</a>)
Но две проблемы не решены:
- Текст "Тест" также заменяется внутри тегов (например,
<a href="#" onclick="location.href='http://Test.com/url'; return false;">
) - Если текст между тегом не точно соответствует искомому тексту, он также будет заменен (например,
<a href="#" onclick="location.href='http://url'; return false;">Test xyz</a>
)
Я надеюсь, что у кого-то есть решение этой проблемы.