mic*_*kov 9 regex windows cmd batch-file
我需要检查字符串是否包含除数字之外的任何内容.但我有一个问题.
echo bdfbdfd | findstr /R [^0123456789]
Run Code Online (Sandbox Code Playgroud)
什么都不返回,但它应该返回bdfbdfd.但
echo 123 | findstr /R [^0123456789]
返回'123'.为什么?反之亦然.
经过大量的测试,我们走了:
echo 123 | findstr /R "[^0123456789]"
^ this space is what is matched, remove it and it won't match anything
Run Code Online (Sandbox Code Playgroud)
另一种方法是(正如Christian.K所述)逃避^这样的写作
echo 123| findstr /R [^^0123456789]
Run Code Online (Sandbox Code Playgroud)
(注意^^)
对于bdfbdfd将第二个正则表达式放在""和删除空间之间的部分,它使它适用于指定的字符串.
编辑:
请注意,您正在匹配单个字符.在比赛中
echo bdfbdfd | findstr /R [^0123456789]
Run Code Online (Sandbox Code Playgroud)
没有匹配,因为你的字符串不包含任何数字(不计算^需要转义的数字).在
echo 123 | findstr /R [^0123456789]
Run Code Online (Sandbox Code Playgroud)
你匹配了第一个数字.使用正则表达式,您将匹配包含单个匹配的任何字符串,因此尝试123(space)与正则表达式匹配[^^0123456789]将输出整个字符串作为匹配,因为字符串末尾的非数字字符.
| 归档时间: |
|
| 查看次数: |
4774 次 |
| 最近记录: |