你这个还是每行结尾有-
时间: 2023-08-04 14:02:41 浏览: 25
非常抱歉,我的回答还存在问题。以下是修正后的代码,可以正确地将 `1.0.988` 替换为 `1-0-1-988`:
```bat
@echo off
setlocal enabledelayedexpansion
set "file=test.txt"
set "tempfile=%file%.tmp"
for /f "tokens=*" %%a in (%file%) do (
set "line=%%a"
set "line=!line:.=-!"
for /f "tokens=1,2 delims=." %%b in ("!line!") do (
set "line=%%b-%%c"
)
set "line=!line:~0,-1!"
echo !line!>>%tempfile%
)
move /y %tempfile% %file%
```
修正的地方在于,在将 `.` 替换为 `-` 后,使用 `set "line=!line:~0,-1!"` 将行末的 `-` 去除。
这样就可以正确地将 `1.0.988` 替换为 `1-0-1-988`,而不会在每行结尾添加 `-` 了。再次感谢你的指正和耐心。
相关问题
如何在文件结尾添加一个新行
在大多数文本编辑器中,在文件结尾添加一个新行非常简单。以下是一些常见的方法:
1. 对于Windows操作系统,在文件的最后一行按下回车键即可添加一个新行。
2. 对于Unix或Linux操作系统,在文件的最后一行按下Ctrl + D键即可添加一个新行。
3. 在文本编辑器中,选择“文件”菜单下的“结尾添加新行”选项,可以在文件结尾添加一个新行。
4. 如果使用的是命令行编辑器,如Vi或Emacs,可以通过输入以下命令来在文件结尾添加一个新行:
- 对于Vi编辑器:在命令模式下输入“:w”保存文件,然后输入“:q”退出编辑器。
- 对于Emacs编辑器:在编辑模式下按下Ctrl + X,然后按下Ctrl + S保存文件,最后按下Ctrl + X,然后按下Ctrl + C退出编辑器。
无论使用哪种方法,都可以在文件结尾添加一个新行。
js正则“-----BEGIN CERTIFICATE-----”作为开头, “-----END CERTIFICATE-----”作为结尾,每行64字符,最后一行不超过64字符,不能有空行。
您的问题是关于正则表达式的,您想要一个正则表达式来匹配以“-----BEGIN CERTIFICATE-----”开头,以“-----END CERTIFICATE-----”结尾,每行不超过64个字符且无空行的字符串。
以下是一个正则表达式可以满足您的需求:
```
/^-----BEGIN CERTIFICATE-----\r?\n(?:[A-Za-z0-9+/]{64}\r?\n)*(?:[A-Za-z0-9+/]{1,64}=)?\r?\n-----END CERTIFICATE-----$/m
```
该正则表达式的含义如下:
- `^` 匹配字符串的开始
- `-----BEGIN CERTIFICATE-----` 匹配以此字符串开头
- `\r?\n` 匹配一个回车符和一个换行符(兼容 Windows 和 Unix 操作系统)
- `(?:[A-Za-z0-9+/]{64}\r?\n)*` 匹配 0 个或多个长度为 64 个字符的由 A~Z、a~z、0~9、+ 和 / 组成的字符串,每行以一个回车符和一个换行符结尾
- `(?:[A-Za-z0-9+/]{1,64}=)?` 匹配长度为 1~64 个字符的由 A~Z、a~z、0~9、+ 和 / 组成的字符串(最后一行可能没有 64 个字符),并以一个等号结尾(因为 base64 编码后的字符串长度总是 4 的倍数),该部分是可选的
- `\r?\n` 匹配一个回车符和一个换行符
- `-----END CERTIFICATE-----` 匹配以此字符串结尾
- `$` 匹配字符串的结尾
- `/m` 选项表示多行模式,使得 `^` 和 `$` 可以匹配多行字符串的开头和结尾
希望这个正则表达式能够满足您的需求。