带正则表达式的命令行 findstr
Command Line findstr with a regular expression
我需要搜索目录和子目录中的所有文件以匹配 reg exp 中的任何数字。基本上在我们的代码中,我们有基于特定项目编号的代码块。我需要按项目编号找到这些块。这个正则表达式可以满足我的需要,但我无法在命令行中使用它
([^0-9]|^)(56|14|2)([^0-9]|$)
我在 https://www.freeformatter.com/regex-tester.html 上针对这个字符串 "If session.projid = 56 and then again 14 or something else"
进行了测试
我正在命令行尝试这个
findstr /s /R /C:"([^0-9]|^)(56|14|2)([^0-9]|$)" *.*
但是没有结果,我知道应该有。在此先感谢您对此提供的任何帮助。
参见these docs:
FINDSTR does not support alternation with the pipe character (|) multiple Regular Expressions can be separated with spaces, just the same as separating multiple words (assuming you have not specified a literal search with /C) but this might not be useful if the regex itself contains spaces.
在您的情况下,您可以对每个数字使用 \<
/ \>
字边界,并且您可以在 space:
之后指定所有备选方案
findstr /s /r "\<56\> \<14\> \<2\>" *.*
我需要搜索目录和子目录中的所有文件以匹配 reg exp 中的任何数字。基本上在我们的代码中,我们有基于特定项目编号的代码块。我需要按项目编号找到这些块。这个正则表达式可以满足我的需要,但我无法在命令行中使用它
([^0-9]|^)(56|14|2)([^0-9]|$)
我在 https://www.freeformatter.com/regex-tester.html 上针对这个字符串 "If session.projid = 56 and then again 14 or something else"
进行了测试我正在命令行尝试这个
findstr /s /R /C:"([^0-9]|^)(56|14|2)([^0-9]|$)" *.*
但是没有结果,我知道应该有。在此先感谢您对此提供的任何帮助。
参见these docs:
FINDSTR does not support alternation with the pipe character (|) multiple Regular Expressions can be separated with spaces, just the same as separating multiple words (assuming you have not specified a literal search with /C) but this might not be useful if the regex itself contains spaces.
在您的情况下,您可以对每个数字使用 \<
/ \>
字边界,并且您可以在 space:
findstr /s /r "\<56\> \<14\> \<2\>" *.*