作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一系列看起来像这样的字符串:
foobar | ABC Some text 123
barfoo | DEF Some te 456
我想屏蔽它以便得到结果
ABC123
DEF456
分别。中间的文本将始终是一个子字符串 Some text
,它可能包含数字(例如 S0m3 t3xt
或 S0m3 t3
)。它将始终是从左侧开始的子字符串,因此永远不要 me te
。
很明显我需要用类似的东西来启动正则表达式
(?<=| )[A-Z]{3}
这得到了 ABC
和 DEF
但我不知道如何有效地连接字符串末尾的数字。
有没有办法用一个表达式来做到这一点?
最佳答案
(?<=| )([A-Z]{3}).*(\d{3})
这将为您提供 A-Z 范围内的三个字符和两个捕获组中的三个数字,允许您使用这些组将两者连接到您想要的输出:$1$2
如果您的 Some text
中间包含三个数字,这甚至会起作用。
如果您想用两个捕获组替换所有内容,请在正则表达式前添加 .*
:
.*(?<=| )([A-Z]{3}).*?(\d{3})
关于具有不同忽略字符的正则表达式掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19951311/
我是一名优秀的程序员,十分优秀!