-1

我对正则表达式完全是垃圾,所以需要一些帮助!我有一个如下所示的 URI:

/收藏品/文具/彩色-绿色+大号

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

/收藏品/文具/大号+彩色-绿色

所以它可能并不总是后跟一个+号。

没关系实现这一点的代码我只是在正则表达式之后,即我可以在这里敲击的代码:http ://regexlib.com/RETester.aspx它会匹配正确的模式。

非常感谢

4

1 回答 1

1

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

colour-\w+\+?

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

colour-[^+]+\+?

用您的 URI 上的任何内容替换上述内容将导致我认为您想要的结果:

.../colour-green+size-large- .../size-large
.../size-large+colour-green- .../size-large+
...如果您有不止 2 个变量:
.../shape-square+colour-green+size-large-.../shape-square+size-large

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

(?:\+(?!.*\+))?colour-[^+]+\+?
于 2013-08-12T12:34:49.860 回答