Ответ Марка будет работать, но его можно улучшить двумя простыми изменениями:
- Центральные скобки излишни, если вы не используете эту группу.
- Если не использовать несколько жетонов my: string, это поможет сделать его не жадным.
Предоставление:
String ResultString = SubjectString.replaceAll
( "(<my:string>).*?(</my:string>)" , "$1whatever$2" );
Но я бы так не написал - замену можно упростить, используя lookbehind и lookahead, и вы можете избежать повторения имени тега, например:
String ResultString = SubjectString.replaceAll
( "(?<=<(my:string)>).*?(?=</\1>)" , "whatever" );
Конечно, этот последний может быть не таким дружелюбным для тех, кто еще не знает регулярные выражения - он, однако, более удобен в обслуживании / гибок, поэтому его стоит использовать, если вам может потребоваться сопоставить больше, чем просто теги my: string. 1015 *