删除字符串前的文本

时间:2017-05-19 19:25:48

标签: regex

我有一个包含以下数据的列

  

XS/X / Black

我只需要颜色。

当专栏说S / Black时,我很好,但当大小为X/XS时,我的正则表达式无效。

获得我正在使用的尺寸

\/.*

获取我正在使用的颜色

^[^/]*/

关于如何识别和删除 / (斜杠之前和之后的空格)的想法?

2 个答案:

答案 0 :(得分:0)

(\ s)*就是你所需要的。这匹配零个或多个空格字符,我认为到目前为止这是你的问题。

这应该让你走上正轨,我想......

exit!

我有从XXS到XXL的硬编码大小(...实际上是1个或更多个X,所以它会自动匹配像XXXL这样的东西......)。如果您的数据中有“3XL”等大小,则必须将其解决。

数组中的第四个匹配应该是颜色。

修改 这更简单......

(X+S|S|M|L|X+L)/(\s)*X(\s)*(.+)

您的颜色将在第1组,第1组中。 你可以在这里测试一下 https://regex101.com/

答案 1 :(得分:0)

输入:

XS/X / Black

模式(Demo):

/\/ \K.+/

输出:

Black

此模式避免使用\K使用捕获组,并将提供斜杠和空格后面的文本部分,直到字符串结尾为完整字符串匹配。

如果您需要捕获组,可以使用:/\/ (.+)/

如果您在大小调整值子字符串中使用斜杠后面的空格那么这将改变您的问题并使slash-space无效为分隔符。

为了扩展可能性领域,我相信你应该能够使用以下模式来准确提取颜色子串:

[^ ]+$

输入/输出:

XS/ X / Black                  // Black
XS / X / Black                 // Black
L / XL/XXL / Reddish-Orange    // Reddish-Orange
S /M/ L / Red/White/Blue       // Red/White/Blue
L / XL / Black&White           // Black&White