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#。” “这是一个____。”? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用正则表达式仅捕获具有特定格式的有效句子的第一个单词? [复制]