Regex 使用正则表达式从查询字符串中提取值
我试图使用正则表达式从这个字符串中提取值,但我似乎无法正确获取它 字符串:Regex 使用正则表达式从查询字符串中提取值,regex,Regex,我试图使用正则表达式从这个字符串中提取值,但我似乎无法正确获取它 字符串: ?Ntt=crockett%20&%20Jones&Rdm=718&searchType=simple&type=search&Ns=&N=&Nrpp=12&No=0&Nr=AND(product.active:1,NOT(record.type:Store)) 我需要Ntt的值,它是crockett%20&%20Jones 我目前拥有的正则表达式
?Ntt=crockett%20&%20Jones&Rdm=718&searchType=simple&type=search&Ns=&N=&Nrpp=12&No=0&Nr=AND(product.active:1,NOT(record.type:Store))
我需要Ntt
的值,它是crockett%20&%20Jones
我目前拥有的正则表达式是:
\?Ntt=(([&%])|([^&=]))*
但这导致:
?Ntt=crockett%20&%20Jones&Rdm
如何更新我的正则表达式以生成所需的值?您可以使用基于捕获组的正则表达式,如
[&?]Ntt=(((?:%20&%20 |[^&])*)
看
或者,您可以使用基于lookback的正则表达式,如
(?[&\?]Ntt=([^&]*)
首先捕获分隔符(或者?或者&),然后捕获密钥,然后捕获所有内容,直到下一个分隔符
演示:通常在查询字符串中分隔输入。&是否确实需要和%20Jones
?如果不需要,请使用[&\?]Ntt=([^&]*)
@mankowitz,我确实需要和%20Jones
-这就是为什么我在努力寻找合适的regexHow你知道第二组是你想要捕获的东西的一部分吗?换句话说,你怎么知道你需要多少?