如何解决如何用单个子字符串替换不同的可能子字符串甚至长度不同?
假设我有以下格式的巨大字符串-
"blahblahblahrgb(123,214,255)blahblahrgb(99,235)aefubaeofbiuaebfaef"
我想将“ rgb(x,x,x)”的每个实例替换为“ rgb(255,255,255)”,其余的字符串保留原样。我无法使用默认的字符串替换方法,因为rgb()中的值可能会有所不同。
因此上述字符串应变为-
"blahblahblahrgb(255,255)blahblahrgb(255,255)aefubaeofbiuaebfaef"
是否有默认功能可以做到这一点?或您可以建议的任何有效逻辑?
Python,Javascript,Java,Dart或任何语言都可以。
解决方法
您的问题是Regular Expressions的完美用例。 由于您要求使用多种语言,因此这里是python regex版本。
import re
rex = re.compile("rgb\(\d{1,3},\d{1,3}\)")
myString = "blahblahblahrgb(123,214,255)blahblahrgb(99,235)aefubaeofbiuaebfaef"
newString = rex.sub("rgb(255,255,255)",mystring)
print(myString)
>>> blahblahblahrgb(123,235)aefubaeofbiuaebfaef
print(newString)
>>> blahblahblahrgb(255,255)blahblahrgb(255,255)aefubaeofbiuaebfaef
有关正则表达式的逐步说明,请参见Regex101。
,这是Java中的快速正则表达式解决方案
public String replaceAllRGBToWhite(String str) {
return str.replaceAll("rgb\\(\\d{1,\\d{1,3}\\)","rgb(255,255)");
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。