我正在尝试匹配和替换以下形式的字符串
mystring = "string-text"
与
mystring = "XYZ string-text"
当且仅当字符串文本不等于
red
。例如
original-text replacement
------------- -----------
mystring = "red" mystring = "red"
mystring = "green" mystring = "XYZ green"
mystring = "blue" mystring = "XYZ blue"
mystring = "reds" mystring = "XYZ reds"
mystring = "_red" mystring = "XYZ _red"
mystring = "1ed" mystring = "XYZ 1ed"
mystring = "ree" mystring = "XYZ ree"
mystring = "" mystring = "XYZ "
mystring = "12345678" mystring = "XYZ 12345678"
mystring = "red"
保持不变,所有其他的都按照描述进行更换。是否存在实现此目的的正则表达式?
我能做到的最好的是
^mystring = "(?!red)(.*)"$
捕获组
(.*)
允许用mystring = "XYZ \1"
打印替换。这在大多数情况下都有效,但对于测试用例却失败了mystring = "reds"