gpt4 book ai didi

特定字符的 C# 正则表达式或什么都没有

转载 作者:行者123 更新时间:2023-11-30 14:53:39 25 4
gpt4 key购买 nike

精简版:如何在较长的、可能重复的模式中匹配单个特定字符或不匹配任何内容?

长版:我正在形成一个正则表达式来计算字符串'word'在具有特定格式的字符串中的出现;连字符后跟整数(任意长度)后跟连字符后跟字符串 'word' 后跟连字符,可能会重复。例如

'-0-word-' (1 match)
'-10-word-' (1 match)
'-999-word-' (1 match)
'-1-word-1-word-' (2 matches)
'-1-word-1-word-222-word-' (3 matches) etc.

如果模式重复,那么我认为前导连字符必须是可选的,因为它已经是上一个匹配项的尾随连字符。

到目前为止我想到的最好的是;

[-]?\d+-word-

给出了 3 个匹配项

'-1-word-1-word-222-word-'

但它也给出了 3 个匹配

'-1-word-1-word-X222-word-'

因为前导连字符是可选的,'X' 被忽略。我希望前导连字符只是一个连字符或什么都不是。如果格式不正确,我想确保拒绝整个字符串(不匹配)。

感谢您的帮助!

最佳答案

^-\d+-word(?:-\d+-word)*-$

试试这个。查看演示。

https://regex101.com/r/wU7sQ0/20

关于特定字符的 C# 正则表达式或什么都没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28740943/

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