0

我想知道是否可以使用 findstr 在 CSV 中搜索与此正则表达式匹配的任何内容

^([BPXT][0-9]{6})|([a-zA-Z][a-zA-z][0-9][0-9](adm)?)$
4

2 回答 2

1

我不知道您在谈论哪种语言,但是您的正则表达式存在一个明显的问题:^and$锚点要求它匹配整个字符串,并且您似乎计划匹配 CSV 文件中的各个条目。

因此,如果您的正则表达式引擎支持它们,您应该使用单词边界锚点:

\b(?:([BPXT][0-9]{6})|([a-zA-Z]{2}[0-9]{2}(adm)?))\b

我还在交替周围添加了另一个非捕获组。在您的正则表达式中,字符串开头和结尾的锚点将​​成为交替的一部分,这可能不是有意的。您是否真的需要所有其他括号取决于您要对匹配做什么。

于 2011-01-26T13:03:08.763 回答
0

不,它不能findstr用于搜索匹配的子字符串,尤其是那些与您提供的复杂表达式匹配的子字符串。

findstr是 Windows 内置的。

findstr /?显示了它可以使用的正则表达式的子集:

Regular expression quick reference:
  .        Wildcard: any character
  *        Repeat: zero or more occurrences of previous character or class
  ^        Line position: beginning of line
  $        Line position: end of line
  [class]  Character class: any one character in set
  [^class] Inverse class: any one character not in set
  [x-y]    Range: any characters within the specified range
  \x       Escape: literal use of metacharacter x
  \<xyz    Word position: beginning of word
  xyz\>    Word position: end of word

这意味着你的大部分表情都在窗外。

此外,findstr不能将其输出限制为匹配的表达式;它仅标识包含匹配项的行。

它完全不适合所描述的任务。

于 2017-02-01T21:12:33.997 回答