Regex 删除字符串前的文本
我有一列包含以下数据Regex 删除字符串前的文本,regex,Regex,我有一列包含以下数据 XS/X/Black 我只需要颜色 当列显示S/Black时,我很好,但当大小为X/XS时,我的正则表达式不起作用 以获得我使用的尺寸 \/.* ^[^/]*/ 为了得到我使用的颜色 \/.* ^[^/]*/ 思考如何识别和删除(/(斜杠前后的空格)?您需要(\s)*。这匹配零个或更多的空白字符,我认为这是迄今为止让你挂断电话的原因 这会让你走上正轨,我想 (X+S|S|M|L|X+L)/(\s)*X(\s)*(.+) 我已经硬编码了从XXS到XXL的大小(…实际
XS/X/Black
我只需要颜色
当列显示S/Black
时,我很好,但当大小为X/XS
时,我的正则表达式不起作用
以获得我使用的尺寸
\/.*
^[^/]*/
为了得到我使用的颜色
\/.*
^[^/]*/
思考如何识别和删除(/
(斜杠前后的空格)?您需要(\s)*。这匹配零个或更多的空白字符,我认为这是迄今为止让你挂断电话的原因
这会让你走上正轨,我想
(X+S|S|M|L|X+L)/(\s)*X(\s)*(.+)
我已经硬编码了从XXS到XXL的大小(…实际上是一个或多个X,所以它会自动匹配XXXL之类的东西…)。如果您的数据中有“3XL”这样的大小,您必须计算出来
数组中的第四个匹配项应该是颜色
编辑:
这更简单
.*\s*\/\s*(.+)
您的颜色将在组1中,匹配1。
你可以在这里测试。
输入:
XS/X / Black
模式():
输出:
Black
此模式通过使用\K
避免使用捕获组,并将提供斜杠和空格后直到字符串结尾的文本部分作为完整字符串匹配
如果需要捕获组,可以使用:/\/(.+)/
如果在“大小调整值”子字符串中的斜杠后添加空格,则会更改您的问题并使“斜杠空格”
作为分隔符无效
为了扩展一些可能性,我相信您应该能够使用以下模式来准确提取颜色子字符串:
[^ ]+$
输入/输出:
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
您的正则表达式是什么?要获得我使用\/.*的大小,要获得我使用的颜色^[^/]*/但要求是什么?尝试实际上,您可以使用
“/”
进行拆分。您在哪里使用正则表达式?对于大小,您可以使用^(.*?\s\/\s
,对于颜色,\s\/\s(+)
。但是,如果您知道如何使用正则表达式,那么就更容易理解您在做什么。它是Python中的熊猫,还是R中的拆分列?