regex - 从符号“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
解决方案
您没有说明使用的是哪种工具/语言,因此很难确定要建议什么。
但是,如果可能的话,我会考虑在字母"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+/
) 变得微不足道。
推荐阅读
- android - 如何在运行时从 Delphi Rio 获取 Android API 版本?
- javascript - 根据路由动态获取路由信息
- vue.js - IONIC VUE:离子菜单按钮未显示;令人困惑的文档
- typescript - 推断函数的参数列表
- sql - 如何转换带有多个表的 Sequelize 的 SQL 查询?
- maven - 下载 jansi.jar 文件时,mvn install 在一定百分比后卡住
- python - 是否有任何问题,或者每个 pip 命令都附带此警告是否正常
- c# - C# 应用程序 - 从树莓派获取主机名 + IP 地址
- excel - 如何解决 VBA 和 Powershell 之间的这种特殊字符编码问题?
- identity - 为身份服务器外部身份提供者请求添加中间端点