java使用正则表达式,如何改变句子“这是一个#apple#。” “这是一个____。”? [关闭]

Posted

技术标签:

【中文标题】java使用正则表达式,如何改变句子“这是一个#apple#。” “这是一个____。”? [关闭]【英文标题】:java use regex,how to change sentence "This is an #apple#." to "This is an ____."? [closed] 【发布时间】:2021-09-16 01:52:51 【问题描述】:

我想在我的字符串中找到以# 开头和结尾的字符序列,并将其替换为四个下划线:____。而“#”在句子中的位置是不确定的。

例如改变

"This is an #apple#. But I like #pears#. #Can# I have some pears?"

"This is an ____.But I like ____ . ____ I have some pears?"

【问题讨论】:

那么你尝试了什么正则表达式,你在哪里失败了? 为什么需要正则表达式?如果字符串的开头和结尾都为#,则将其替换为____ 我将这个问题解释如下:在一个字符串中可能有一个未知数量的字符序列,以# 开头和结尾,需要用4 个下划线替换。使用String.replace(regex, "____") 应该很容易做到这一点 - 所以问题似乎是那个正则表达式应该是什么。 @zhangjin 我说的对吗? 到目前为止你尝试了什么?尝试将“以#开头,后跟不是#,以#结尾”的正则表达式。 我看绝对没有尝试自己编写正则表达式,这表明你根本不知道正则表达式,所以你要不要上网开始学习正则表达式,而不是要求我们为您编写代码? 【参考方案1】:
        String str = "This is an #apple#. But I like #pears#.";
        String reg = "#.*?#";
        str = str.replaceAll(reg, "____");
        System.out.println(str);

【讨论】:

所以您已经回答了自己的问题?或者这应该是对您的问题的修改? @AlexRudenko 我找到了正确的正则表达式!并回答。 @AlexRudenko 既然这似乎是一个很好的解决方案,我想说 OP 只需要推动自己尝试一下。

以上是关于java使用正则表达式,如何改变句子“这是一个#apple#。” “这是一个____。”? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用正则表达式仅捕获具有特定格式的有效句子的第一个单词? [复制]

使用正则表达式匹配MYSQL中句子中的单词

正则表达式检查句子中仅包含字母的两个单词

匹配大量不同的句子(使用正则表达式模式解析)

如何在android和java中将字符串拆分为句子? [复制]

使用正则表达式将字符串拆分为句子