Java регулярное выражение для удаления ведущих и "в слове" звездочек - PullRequest
2 голосов
/ 30 марта 2012

Я ищу регулярное выражение для удаления всех конечных звездочек и всех звездочек внутри слова.

*He*llo* -> Hello* <br>
Thi*s *is* *a* t*est* -> This is* a* test*

Должны быть приняты конечные звездочки.

У меня нет особого опытарегулярные выражения.Я знаю, что могу написать простую программу, которая перебирает каждое слово строки и удаляет завершающие и «в слове» звездочки - но мне интересно, можно ли решить мою проблему с помощью регулярных выражений или нет.

Надеждачто ты можешь мне помочь.Заранее спасибо.

С наилучшими пожеланиями, Иоаннис К.

Ответы [ 3 ]

2 голосов
/ 30 марта 2012

Вам нужно использовать взгляд в будущее.

Взгляните сюда: http://www.regular -expressions.info / lookaround.html

Это что-то вроде: \ * (?! (| $))

Это регулярное выражение говорит: удалите все *, за которыми не следует пробел или конец строки. (не проверено)

1 голос
/ 30 марта 2012
    final String[] in = { "*He*llo*", "Thi*s is *a* t*est*" };
    for ( final String s : in ) {
        System.out.println( s.replaceAll( "\\*(\\b)", "$1" ) );
    }
1 голос
/ 30 марта 2012

Заменить

\**\b

с пустой строкой, глобально.

Java использует строки для представления регулярных выражений, поэтому вы должны соответственно экранировать:

"\\**\\b"
...