Java正则表达式删除前导和'in word'星号

时间:2012-03-30 14:21:04

标签: java regex asterisk

我正在寻找一个正则表达式来删除一个单词中的所有尾随星号和所有星号。

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

应接受结尾星号。

我对正则表达式并不熟悉。我知道我可以编写一个简单的程序来循环遍历字符串的每个单词并删除尾随和“字内”星号 - 但我想知道我的问题是否可以使用正则表达式来解决。

希望你能帮助我。 提前谢谢。

祝你好运, Ioannis K。

3 个答案:

答案 0 :(得分:2)

你需要使用前瞻。

看看这里: http://www.regular-expressions.info/lookaround.html

这类似于:\ *(?!(| $))

这个正则表达式说:删除所有*后面没有空格或行尾。 (未经测试)

答案 1 :(得分:1)

替换

\**\b

使用空字符串,全局。

Java使用字符串来表示正则表达式,因此必须相应地转义:

"\\**\\b"

答案 2 :(得分:1)

    final String[] in = { "*He*llo*", "Thi*s is *a* t*est*" };
    for ( final String s : in ) {
        System.out.println( s.replaceAll( "\\*(\\b)", "$1" ) );
    }