正则表达式替换URI中的变量

时间:2013-08-12 12:26:49

标签: regex expression

我对正则表达式完全是垃圾,所以需要一些帮助!我有一个看起来像这样的URI:

/集合/文具/颜色绿色+尺寸大

我想用什么颜色替换颜色 - 绿色(在这种情况下是+)。颜色不一定是绿色,因此可能是颜色为蓝色或颜色为红色等。它也可能出现在URI的末尾,例如。

/集合/文具/尺寸大+颜色绿色

因此可能并不总是跟着+号。

不要介意实现这个的代码我只是在正则表达式之后,即我可以在这里进行的操作:http://regexlib.com/RETester.aspx并且它将匹配正确的模式。

非常感谢

1 个答案:

答案 0 :(得分:1)

以下内容将匹配URI中的“color-green”以及第一个URI中的以下+。如果颜色不同,它也会匹配。

colour-\w+\+?

如果您想确保并允许十六进制颜色代码,您可以执行以下操作:

colour-[^+]+\+?

在URI上替换上面没有任何内容会导致我认为你想要的结果:

.../colour-green+size-large - .../size-large
.../size-large+colour-green - .../size-large+
...如果你有两个以上的变量:
.../shape-square+colour-green+size-large - .../shape-square+size-large

此外,如果您希望第二个(.../size-large+colour-green)在匹配前删除“+”而不影响第三个示例中匹配前的“+”。您可以使用这样的负向前瞻:

(?:\+(?!.*\+))?colour-[^+]+\+?