【发布时间】:2021-12-17 18:26:14
【问题描述】:
来自以下字符串:
google.com/local/reviews?placeid\\u003dChIJ070npYRaeEgRZNoxwuYYrew\\u0026q\\u003d
提取u003dChIJ070npYRaeEgRZNoxwuYYrew虽然这个值每次都会改变。
我试过了
Regex r = new Regex(@"("(?<=\placeid\\\s+)\p{L}+");
这不起作用。
我因忽略了我对正则表达式的了解而感到内疚,所以如果这太容易了,我深表歉意。
【问题讨论】:
-
该文本是字符串文字还是纯文本?
-
这是我将使用正则表达式的源代码的一部分。
-
因为
\p和\p{L}不行,你只需要var res = Regex.Match(text, @"placeid\\u003d(.*?)(?=\\u0026q|$)")?.Groups[1].Value。但可能您需要使用Regex.Unescape(text),而不仅仅是text,然后var res = Regex.Match(Regex.Unescape(text), @"[?&]placeid=([^&]*)")?.Groups[1].Value就可以了。或者,反斜杠可能需要在上面的代码中加倍。请注意,\u003d是=,\u0026是&。如果您提供了一个测试用例 sn-p,它将更快、更有信心地回答您的问题。