3

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

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

{正则表达式}Hello World GET a1b2c3{正则表达式}

我之后的部分是“a1b2c32”,它只能是一个字母或数字,但总是以 { 结尾并以空格开头。我的第一次尝试是正面看一个头。

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

但是后来我为匹配任何不是大括号的字符而奋斗

"Hello World  GET [^{]+"

我确实意识到这会捕获我不想要的文本并将其引用到 group1 中。基本上,如果可以的话,我只是在寻找对我的第一个示例的改进。这对我来说都是关于学习和测试的,所以这不是现实生活中的项目。

谢谢大家花时间阅读:)

4

2 回答 2

1

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

[^{ ]+(?={)

正则表达式101演示

[^{ ]+匹配除{空格以外的任何字符,并+确保至少有一个字符,这样您就不会匹配字符串开头的空字符串。

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

于 2013-09-14T18:16:14.067 回答
0

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

[a-z0-9]+(?=\{)
于 2013-09-14T18:01:22.877 回答