在已知值之前取字符串的一部分

时间:2019-07-03 20:42:19

标签: .net regex

我有一个带有十六进制值的字符串,例如:

01 02 03 AA BB CC FF 09 65 AA BB DE F2

我需要在第一个 AA BB 之前使用此字符串。我尝试使用正则表达式。我的想法是这样的:

(([0-9A-F]{2} )+(AA BB )){1}

比赛结束后进入第一组。但这是行不通的。有人可以帮我完成这个任务吗?

2 个答案:

答案 0 :(得分:1)

如果将正则表达式更改为(([0-9A-F] {2} \ s)+)(AA BB),则可以在第一组中捕获“ 01 02 03”

答案 1 :(得分:0)

我的猜测是,您设计的表情似乎不错,也许可以稍加修改

^([0-9A-F]{2}\s?)+(?=\sAA BB).*$

可能会工作。

Demo 1

或者如果我们不进行验证,也许这些表达式会起作用:

^(.+?)(?=\sAA BB).*$

Demo 2

^(.+?)(?:\sAA BB.*)$

Demo 3


编辑

或者该模式可能正在重复:

(.+?)(?:\sAA BB\s*.*?)

Demo 4