首页 > 解决方案 > 从符号“X”之后的文本中提取数字

问题描述

我在一列中有以下文本,我需要在第二个“X”或“x”旁边提取数字,

在下面的文本中,它是54.

40sHT + 2/20sCMD X 30sHT + 2/20sCMD 56 X 54 54" AWM/C129-DOBY

其他一些示例文本:

21sOE X 12sFL 56 X 36 63" PLAIN          # Result must be : 36

40sC X 40sC_100 X 91_63" PLAIN           # Result: 91

16sOE x 12sLY 84 x 48 71" 3/1 DRILL      # Result: 48

标签: regex

解决方案


您没有说明使用的是哪种工具/语言,因此很难确定要建议什么。

但是,如果可能的话,我会考虑在字母"x"(或"X")上拆分字符串,因为这使得正则表达式部分更容易理解。例如,类似:

input = '40sHT + 2/20sCMD X 30sHT + 2/20sCMD 56 X 54 54" AWM/C129-DOBY'
input.split(/x/i)[2][/\d+/]

通过进行这种拆分,我们首先只提取字符串的所需部分(在本例中为' 54 54" AWM/C129-DOBY'),因此正则表达式 ( /\d+/) 变得微不足道。


推荐阅读