我尝试将每行的前2 -
个字符转换为|
,从而将文件名列表解析为CSV文件。问题是文件名本身也包含我正在搜索的字符。
我的原始数据如下所示:
12055371-1-Florence - BW Letter of Intent HB Comments 9-4-14-2.DOCX
12057668-2-EB-DUE-M- SBuxbaum FHA Benefit Plans-2.DOCX
12058210-1-Redline Letter of Intent-2.PDF
12058029-3-Florence Hospital--Order Establishing Bid Procedures-HB 9-23-14-2.DOCX
12058020-10-Florence - BW Letter of Intent 10,10,14 Revisions-2.DOCX
使用Notepadd ++即时替换,但我不确定正则表达式将用于识别和替换这些项目。
答案 0 :(得分:3)
不匹配-
,匹配行的开头直到第二个-
:
match ^(.*?)-(.*?)-
replace by \1|\2|
说明:
^
匹配行的开头(0宽度匹配)。(.*?)
以非贪婪的方式匹配任何字符:如果下一个字符可以匹配,它将允许它这样做。结果已分组,以便稍后引用。\1
和\2
是反向引用,指的是两个(.*?)
组。注意:为了提高效率,你可以用被忽略的类[^\-]
替换非贪婪的匹配,这意味着每个字符-
,-
被转义,因为它是' sa在这种情况下的特殊性格。然后这些小组将成为([^\-]*)
。当然,如果它是一次性操作并不重要。