VB.NET回顾我的正则表达式(我自己的学习目的)尽量不要贪心

时间:2013-09-14 17:48:54

标签: regex

上次我将首先说请不要建议其他Net方法,因为我想学习正则表达式。这纯粹是为了我自己的学习,所以这里就是这样。

贪婪可能有用,但并不总是答案,我想可能会导致未来的问题和糟糕的结果。以这个示例文本为例,是的,这是一种不寻常的格式我只是在玩

{regex} Hello World GET a1b2c3 {regex}

我追求的部分是“a1b2c32”,它只是一个字母或数字,但总是以{和一个空格开头。我的第一次尝试是积极的看法。

(?<={regex}Hello World  GET )[a-z0-9]+(?={regex})

但后来我争取匹配任何不是大括号的字符

"Hello World  GET [^{]+"

我确实意识到这将捕获我不想要的文本并引用到group1中。基本上我只是在寻找第一个例子的改进,如果有的话。这一切都与我学习和测试有关,因此它不是真正的生活项目。

谢谢大家花时间阅读:)

2 个答案:

答案 0 :(得分:1)

也许是一个更通用的正则表达式:

[^{ ]+(?={)

regex101 demo

[^{ ]+匹配除{和空格之外的任何字符,+确保至少有一个字符,以便您不匹配字符串最开头的空字符串

积极的前瞻不应该难以理解。

答案 1 :(得分:0)

鉴于问题的描述,我认为这就足够了:

[a-z0-9]+(?=\{)