我在一个大文件中列出了以下内容,其中包含有关世界上每个国家/地区的信息。
它们是温度数据的数组,有时空格的长度不同。
[23.5 26.3 29.3 31.9 32.8 31.2 28.8 27.8 28.4 29 26.6 23.7]
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 sublime 来编写正则表达式,但我无法理解它们。
到目前为止,我得到的最接近的是:
( \S+)\(.+ )
Run Code Online (Sandbox Code Playgroud)
如何编写一个正则表达式来替换如下所示的行:
[23.8,25.5,27.2,28.3,29.3,29.5,28.7,28.1,28.2,28.9,27.2,24.4]
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感谢。
**编辑我正在使用 Sublime Text。
您可以使用此:(?<=\d)\s+(?=\d|\-),在 Sublime Text 中使用查找和替换所有内容。
(?<=\d)是一个积极的lookbehind,它检查前一个符号是否是数字,而不实际匹配它。
(?=\d)是一个积极的前瞻,同样的事情 - 检查后面的符号是否是数字,而不实际匹配它。
仅供参考,javascript 不支持lookbehinds,但在本例中这并不重要。
https://regex101.com/r/qX1qF5/7更容易摆弄它。
做就是了:
(\d)\s+(\d)
Run Code Online (Sandbox Code Playgroud)
并在替换中:
$1,$2
Run Code Online (Sandbox Code Playgroud)

怎么运行的:
(\d)- 找到一个数字并捕获它\s+- 后面有一个或多个空格。(\d)- 后面跟着另一个数字并捕获它。使用这些设置执行“全部替换”会变成这样:
[23.5 26.3 29.3 31.9 32.8 31.2 28.8 27.8 28.4 29 26.6 23.7]
Run Code Online (Sandbox Code Playgroud)
进入:
[23.5,26.3,29.3,31.9,32.8,31.2,28.8,27.8,28.4,29,26.6,23.7]
Run Code Online (Sandbox Code Playgroud)
请注意,如果数据文件中的任何其他位置有一个数字,后跟一定数量的空格字符,后跟另一个数字,该数字也会受到影响。如果发生这种情况,还有其他方法可以改进这一点,但需要查看其余数据的样本。而且,在某些时候,如果发生的事情太多,尝试使用单个正则表达式解决它而不影响其他数据可能是不可能的。
| 归档时间: |
|
| 查看次数: |
6612 次 |
| 最近记录: |