Java 删除以a开头的单词!

Java 删除以a开头的单词!,java,regex,Java,Regex,在一行中,我想删除任何以开头的单词(否定标记) 有人能帮我在Java中使用正则表达式吗 String line = "hello world hello2 !xxx hello3, %643,!xxxxxxx. world5, !"; String pure = line.replaceAll("?", ""); 我想删除所有!xxx在该示例中 谢谢 我想把所有的都删除!在那个例子中是xxx 尝试: \p{L}匹配任何unicode字母,+表示“一个或多个” 演示: class Main {

在一行中,我想删除任何以
开头的单词(否定标记)

有人能帮我在Java中使用正则表达式吗

String line = "hello world hello2 !xxx hello3, %643,!xxxxxxx. world5, !";
String pure = line.replaceAll("?", "");
我想删除所有
!xxx
在该示例中

谢谢

我想把所有的都删除!在那个例子中是xxx

尝试:

\p{L}
匹配任何unicode字母,
+
表示“一个或多个”

演示:

class Main {
  public static void main(String[] args) {
    String line = "!café hello world hello2 !xxx hello3, %643,!xxxxxxx. world5, !";
    String pure = line.replaceAll("!\\p{L}+", "");
    System.out.println(pure);
  }
}
产生:

hello world hello2  hello3, %643,. world5, !
我想把所有的都删除!在那个例子中是xxx

尝试:

\p{L}
匹配任何unicode字母,
+
表示“一个或多个”

演示:

class Main {
  public static void main(String[] args) {
    String line = "!café hello world hello2 !xxx hello3, %643,!xxxxxxx. world5, !";
    String pure = line.replaceAll("!\\p{L}+", "");
    System.out.println(pure);
  }
}
产生:

hello world hello2  hello3, %643,. world5, !
/\w*/

或许

/\w+/

/\w*/

或许


/\w+/

这是您想要的strip-words-beging-with-a-specific-letter-from-a-statement-using-regex这是您想要的strip-words-beging-with-a-specific-letter-from-a-statement-using-regex这在最后一个字符上失败。@Rafe,OP说“在那个例子中,我想删除所有的!xxx”。最后的
不是这样的东西(后面没有单词),所以我认为它应该留在那里。此外,你如何确切地知道什么时候失败了?我是说你不是问这个问题的人,对吧?巴特。。。这太棒了!谢谢。我只需要删除单词,如果有一个!在它之前。这在最后一个字符上失败。@Rafe,OP说“我想删除该示例中的所有!xxx”。最后的
不是这样的东西(后面没有单词),所以我认为它应该留在那里。此外,你如何确切地知道什么时候失败了?我是说你不是问这个问题的人,对吧?巴特。。。这太棒了!谢谢。我只需要删除单词,如果有一个!在此之前。@hese,这只适用于ASCII字符a-z和a-z,而不适用于unicode或扩展ASCII字符。因此,如果您只担心ascii码,这是一种方法,否则,请将
\w
替换为
\p{L}
是的,这不起作用,因为文本是unicode码。我使用的是\p{L}。正如任何编写
[a-z]
的代码几乎肯定都是事实上被破坏的一样,由于Java天生的白痴性和与
\w
\s
相对的破碎性,
\s
,朋友们必须将所有此类使用归入同一类别:天生被破坏。@Bart:(在此继续)虽然这可能是人们想要的,但仅仅用
\pL
替换
\w
是不一样的,因为
\w
的正常意义相当广泛,不仅包括字母
\pL
,而且还包括十进制数
\p{Nd}
、连接器标点
\p{Pc}
、字母数
\p{Nl code>,变音符号
\pM
,以及其他一些。@hese,这只适用于ASCII字符a-z和a-z,不适用于unicode或扩展ASCII字符。因此,如果您只担心ascii码,这是一种方法,否则,请将
\w
替换为
\p{L}
是的,这不起作用,因为文本是unicode码。我使用的是\p{L}。正如任何编写
[a-z]
的代码几乎肯定都是事实上被破坏的一样,由于Java天生的白痴性和与
\w
\s
相对的破碎性,
\s
,朋友们必须将所有此类使用归入同一类别:天生被破坏。@Bart:(在此继续)虽然这可能是人们想要的,但仅仅用
\pL
替换
\w
是不一样的,因为
\w
的正常意义相当广泛,不仅包括字母
\pL
,而且还包括十进制数
\p{Nd}
、连接器标点
\p{Pc}
、字母数
\p{Nl code>,变音符号
\pM
,以及其他一些符号。