首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的RegEx模式适用于一个字符串,而不是另一个字符串?

为什么我的RegEx模式适用于一个字符串,而不是另一个字符串?
EN

Stack Overflow用户
提问于 2022-08-15 20:14:00
回答 1查看 38关注 0票数 0

这感觉就像一个简单的请求,但我不知道这里发生了什么,并且已经和不同的RegEx测试人员搞混了一段时间了。

我的RegEx模式:\b(?=<GTOL-[A-Z]*>)

如果有关系,我在代码(C#)中调用的命令:Regex.Split(Text, @"\b(?=<GTOL-[A-Z]*>)").ToList();

将成功拆分的字符串: <GTOL-POSI>.010<MOD-MMC>B-C<GTOL-POSI>.002<MOD-FMC>;返回:<GTOL-POSI>.010<MOD-MMC>B-C<GTOL-POSI>.002<MOD-FMC>

不会按预期拆分的字符串: <GTOL-POSI><MOD-DIAM>.004<MOD-MMC>HC<MOD-MMC><GTOL-POSI>.030<MOD-MMC>D-E<MOD-FMC>;应该返回(但不返回):<GTOL-POSI><MOD-DIAM>.004<MOD-MMC>HC<MOD-MMC><GTOL-POSI>.030<MOD-MMC>D-E<MOD-FMC>

另一个不会按预期拆分的字符串: <GTOL-POSI><MOD-DIAM>.005<MOD-MMC>AD-E<MOD-MMC><GTOL-PERP>.001A;应该返回(但不返回):<GTOL-POSI><MOD-DIAM>.005<MOD-MMC>AD-E<MOD-MMC><GTOL-PERP>.001A

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-15 20:28:43

><之间没有单词边界,而且由于似乎至少有一个或更多大写字符,所以量词可以是+来匹配1次或更多次。

如果您不想在字符串的开头分割,在结果列表中创建一个空条目,则可以使用负查找(?<!^\s*)断言在字符串开始后左边没有可选的空格字符。

代码语言:javascript
复制
(?<!^\s*)(?=<GTOL-[A-Z]*>)

看一个regex .NET演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73366000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档