【问题标题】:Java regex text replaceJava 正则表达式文本替换
【发布时间】:2017-01-21 10:10:36
【问题描述】:

我有这样的文字

Some. / text to-match (1)

我想替换 ./()_ 有下一个

Some_text_to_match_1

图案是怎么弄出来的?

【问题讨论】:

  • 展示你的尝试。
  • 你不想去掉所有非单词字符吗?您的字符串还包含- 和空格。所以,要处理的不止./()
  • 是的,我需要全部更换!
  • 谢谢!效果很好!

标签: java regex replace pattern-matching


【解决方案1】:

您可以从两端的非单词字符中修剪字符串(使用.replaceAll("^\\W+|\\W+$", "")),然后将字符串内的1个或多个非单词字符块替换为_(使用.replaceAll("\\W+", "_")):

String s = "Some. / text to-match (1)";
s = s.replaceAll("^\\W+|\\W+$", "").replaceAll("\\W+", "_");
System.out.println(s);

Java demo

详情

  • \W 匹配非单词字符
  • + 匹配 1 次或多次出现此量词修改的子模式。

由于我们需要在修剪字符串并替换其中的非单词字符时使用 2 个不同的替换,因此我们不能只使用 1 个replaceAll

【讨论】:

    猜你喜欢
    • 2014-03-11
    • 1970-01-01
    • 2010-12-24
    • 2017-10-18
    • 2019-11-29
    • 2012-03-20
    • 1970-01-01
    相关资源
    最近更新 更多