上次我将首先说请不要建议其他Net方法,因为我想学习正则表达式。这纯粹是为了我自己的学习,所以这里就是这样。
贪婪可能有用,但并不总是答案,我想可能会导致未来的问题和糟糕的结果。以这个示例文本为例,是的,这是一种不寻常的格式我只是在玩
{regex} Hello World GET a1b2c3 {regex}
我追求的部分是“a1b2c32”,它只是一个字母或数字,但总是以{和一个空格开头。我的第一次尝试是积极的看法。
(?<={regex}Hello World GET )[a-z0-9]+(?={regex})
但后来我争取匹配任何不是大括号的字符
"Hello World GET [^{]+"
我确实意识到这将捕获我不想要的文本并引用到group1中。基本上我只是在寻找第一个例子的改进,如果有的话。这一切都与我学习和测试有关,因此它不是真正的生活项目。
谢谢大家花时间阅读:)
答案 0 :(得分:1)
也许是一个更通用的正则表达式:
[^{ ]+(?={)
[^{ ]+
匹配除{
和空格之外的任何字符,+
确保至少有一个字符,以便您不匹配字符串最开头的空字符串
积极的前瞻不应该难以理解。
答案 1 :(得分:0)
鉴于问题的描述,我认为这就足够了:
[a-z0-9]+(?=\{)