[简介]
常用网名: 猪头三
出生日期: 1981.XX.XX
QQ联系: 643439947
个人网站: 80x86汇编小站 https://www.x86asm.org
编程生涯: 2001年~至今[共22年]
职业生涯: 20年
开发语言: C/C++、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python
开发工具: Visual Studio、Delphi、XCode、Eclipse、C++ Builder
技能种类: 逆向 驱动 磁盘 文件
研发领域: Windows应用软件安全/Windows系统内核安全/Windows系统磁盘数据安全/macOS应用软件安全
项目经历: 磁盘性能优化/文件系统数据恢复/文件信息采集/敏感文件监测跟踪/网络安全检测
[序言]
在股票数据分析中, 根据数据文件的路径进行字符串操作是很常见的方式. 因为股票数据文件名一般都是按照命名格式为: 股票代码-股票名称.txt, 例如: 002431-棕榈股份. 这样做的目的是, 方便后期在提取数据和合并数据时, 可以区分数据是属于那支股票的?
[如何提取"股票代码"呢?]
先使用basename()获取文件名称, 然后再配合gregexec()或regexec() 进行正则表达式""^([0-9]{6})-(.+)\\.txt$""分组提取. 代码如下:
R
file_Stock <- "C:/Users/Win11_PHT/Desktop/KLines/002207-准油股份.txt"
# 提取股票名称
File_Name <- basename(file_Stock)
#Stock_Code <- regmatches(File_Name, gregexec("^([0-9]{6})-(.+)\\.txt$", File_Name))
Stock_Code <- regmatches(File_Name, regexec("^([0-9]{6})-(.+)\\.txt$", File_Name))
print(Stock_Code[[1]][2]) # 打印股票代码
print(Stock_Code[[1]][3]) # 打印股票名称
[结尾]
上面的代码要注意一个细节,regmatches()返回的是list类型. 所以针对list类型进行内容定位时, 要特别注意写法.