和上次一样,我首先要说请不要建议其他 Net 方法,因为我想学习正则表达式。这纯粹是为了我自己的学习,所以在这里。
贪婪可能有用,但它并不总是答案,我想这可能会导致 future 的问题和糟糕的结果。以这个示例文本为例,是的,这是我正在玩的一种不寻常的格式
{regex}Hello World GET a1b2c3{regex}
我想要的部分是“a1b2c32”,它只会是一个字母或数字,但总是以 { 结尾并以空格开头。我的第一次尝试是正面看头。
(?<={regex}Hello World GET )[a-z0-9]+(?={regex})
但后来我努力匹配任何不是大括号的字符
"Hello World GET [^{]+"
我确实意识到这会捕获我不想要的文本并将其引用到 group1 中。基本上,如果可以的话,我只是在寻找对我的第一个例子的改进。这对我来说都是关于学习和测试的,所以这不是现实生活中的项目。
感谢大家花时间阅读 :)
最佳答案
也许是一个更通用的正则表达式:
[^{ ]+(?={)
[^{ ]+
匹配除 {
和空格之外的任何字符,+
确保至少有一个字符,这样您就不会'匹配字符串开头的空字符串。
积极的前瞻应该不难理解。
关于regex - VB.NET Review my regex (我自己的学习目的) Trying not be greedy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18804657/