Regex 正则表达式句柄子字符串不同
我使用以下正则表达式检查伪函数调用的语法:Regex 正则表达式句柄子字符串不同,regex,Regex,我使用以下正则表达式检查伪函数调用的语法: (\$[^\W]+\$) 因此,如果我有一个路径或其他东西,我可以检查包含函数调用的语法是否有效 函数调用始终以$-char开头和结尾 要验证路径的语法,我有以下与完整路径匹配的正则表达式: ^([A-Za-z]\:|\\|\.)(\\[^\\\/:*?""<>|]*)+[\\]$ ^([A-Za-z]\:\\\\\\\\\)(\\[^\\\/:*?”“\\\]*)+[\\]$ 我已经尝试将这两个正则表达式与|结合起来,但是匹配路径语
(\$[^\W]+\$)
因此,如果我有一个路径或其他东西,我可以检查包含函数调用的语法是否有效
函数调用始终以$-char开头和结尾
要验证路径的语法,我有以下与完整路径匹配的正则表达式:
^([A-Za-z]\:|\\|\.)(\\[^\\\/:*?""<>|]*)+[\\]$
^([A-Za-z]\:\\\\\\\\\)(\\[^\\\/:*?”“\\\]*)+[\\]$
我已经尝试将这两个正则表达式与|结合起来,但是匹配路径语法的每个函数调用都是有效的
我需要一个正则表达式来检查路径语法,如果有函数调用(前导和结束$),那么应该检查函数调用语法
有效字符串
- C:\temp\testfolder\
- C:\$getTempPath$\testfolder\
- C:\$getTempPath$\$getTestFolder$\
- C:\programms(x86)\$getAppFolder$\
- C:\temp\alternative$文件夹名称(适用于用户)\
- C:\$getPrograms(x86)$\testfolder\
- C:\$my function$\test\
- 如果稍微调整一下,Wiktor Stribiżew提供的正则表达式可能会起作用:
^(?:[A-Za-z]:|[\\.])(?:\\(?:\$\w+\$|(?!\$[^\\\/:*?"<>|]+\$\\)[^\\\/:*?"<>|]+))+\\$
^(?[A-Za-z]:|[\\.](?:\$\w+\$)(?!\$[^\\\/:*?“|]+\$\)[^\\/:*?“\]+))+\\$
这些变化是:
^(?!.*\\\$\w*[^\w\\][^\\]*\$(?:\\|$))(?:[A-Za-z]:|[\\.])(?:\\[^\\\/:*?"<>|]*)+\\$
^(?。.*\\$\w*[^\w\\][^\]*\$(?:\\\\\\\$)(?:[A-Za-z]:\\[\\.])(?:\\[^\\\/:*?“\]*)+\\$
见
其主要思想是使包含以$
开头的子路径的任何字符串失败,然后包含除\
以外的任何非单词字符(dir分隔符,这可能需要调整),然后包含除\
以外的任何字符量,直到$
和\
或字符串结尾
详细信息
-字符串的开头^
-如果模式从字符串开始立即向右匹配,则会导致匹配失败的负前瞻:(?!\\\\$\w*[^\w\\][^\\]*\$(?:\\\\\\\\$)
-除换行符以外的任何0+字符,尽可能多*
-a\\$
子字符串\$
-0+字字符\w*
-除了单词和[^\w\\]
字符以外的任何字符\
-0+字符,而非[^\\]*
字符\
-a\$
字符$
-要么(?:\\\\\$)
要么字符串结束\
-ASCII字母及其后的(?:[A-Za-z]:|[\\.])
,或:
或\
-1次或多次出现:(?:\\[^\\/:*?“|]*)+
-a\\
字符\
-0+字符,字符类中定义的字符除外[^\\\/:*?“|]*
-a\\
字符\
-字符串结束$
C:\$getPrograms(x86)$\testfolder\
无效?您的问题似乎缺乏精确的要求。