gpt4 book ai didi

c# - 正则表达式不捕获

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:06 27 4
gpt4 key购买 nike

我正在尝试(未成功)使用 RegEx 提取一些信息,但我无法理解为什么某个特定元素未捕获到正确的组中。

这是表达式

^[\\* ](?'sname'[A-Z]+)/(?'fname'[A-Z]+) (\\*(?'chdinf'(INF|CHD)))? (?'random'.+?) (?'cpn'CPN[\\* ][1234])(?'status'.+?) (?'tktno'[0-9]+)$

这是一个示例输入

*SNAME/FNAME         *INF   CPN 2   XX XXXX      99999999999999

*INF 文本应该在 chdinf 组中捕获,但它不是,而是被 random 组捕获。

*INF 文本是可选信息,因此 lazy ? 在分组结构的末尾。

如果我将 random 构造更改为 (?'random' +?)(空格,而不是 '.'),则 Regex 将完全失败。

PS:我一直在使用http://regexstorm.net/tester作为测试平台。

最佳答案

您没有考虑前面的空格。试试这个:

^[\* ](?'sname'[A-Z]+)\/(?'fname'[A-Z]+) +(\*(?'chdinf'(INF|CHD)))? (?'random'.+?) (?'cpn'CPN[\* ][1234])(?'status'.+?) (?'tktno'[0-9]+)$

查看我之前添加的“+”。这是您需要的吗?

关于c# - 正则表达式不捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37719001/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com