我正在努力使用正则表达式,我希望匹配路径的所有“有效”变体。
我对有效的定义是它后跟一个可选的斜杠,可选的查询字符串或单个'?
它需要在PHP和JavaScript中工作,因此无法正面/负面看待。
这里有一个修补的起点 http://regexr.com/3drov
在撰写本文时,我已经^\/page-title\/?(?=\?).*$
我认为\/?
允许我匹配前两行,作为可选的斜杠。但我想我现在感到很困惑。
我尝试输入条件(?(?=)then|else)
类型的东西,我认为它在JS中受到支持但是从regexr.com获得语法错误
所以,任何帮助都会非常感激。谢谢!
这些应匹配输入:/ page-title
/page-title
/page-title/
/page-title?
/page-title/?
/page-title?foo
/page-title/?foo=bar
这些不应该
/page-title/foo/
/page-title-foo-bat
更新
我没有意识到JavaScript不支持经典的条件语法。阅读此帖(I would like to mimick conditionals in javascript regex)后,我似乎已将其与^\/page-title\/?((?=\?).*|)$
保存更新以在此处测试:http://regexr.com/3drq0
答案 0 :(得分:1)
我在我的积极前瞻中使用否定前瞻来否定任何附加DWORD value;
DWORD size = sizeof(DWORD);
//after this executes, value should contain the DWORD data of the specified registry key/valuename
LONG result = RegGetValue(
HKEY_LOCAL_MACHINE,
"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows",
"GDIProcessHandleQuota",
RRF_RT_REG_DWORD | RRF_SUBKEY_WOW6464KEY,
NULL,
&value,
&size);
if (result != ERROR_SUCCESS)
{
...
}
的选项,请检查这是否适合您:\
答案 1 :(得分:1)
这应该这样做:
^\/page-title[\/\?]?(\?[^\/]*)?$
或者
^\/page-title(\/|\?)?(\?[^\/]*)?$
答案 2 :(得分:1)