我正在修改文件以符合新标准。 我很多年前才学习RegEx一周,但从未广泛使用它。因此,我在这里寻求快速解决方案。有人帮忙吗?
- Updates--
感谢您的回复,以下是问题的更多细节:
以下是文件的快照
"Qty" "Reference" "Part Name" "PCB DECAL" "Manufacturer" "Description" "Value"
"4" "C37 C67-68" "2.2UF/10V" "C0805" "" "Capacitor" "2.2UF/10V"
"2" "CPL1-2" "CPL" "CPL-250-200-NOVIA" "Anaren" "" "1P510"
"15" "M1-15" "HOLE100" "HOLE100_180" "" "" ""
"4" "L1-2 L5 L7" "IND" "L0603" "" "MOLDED INDUCTOR, 0.5" PIN SPACING" "2.2nH"
"9" "R2 R8 R12 R34-35" "R" "R0603" "" "" "0"
基本上我需要检测第2列中所有后跟数字的“ - ”并插入单词开头的字母之间。
关于语言,我实际上是在使用Notepad ++,认为通过移植到其他平台(如SED)可以租用相同的表达式。
答案 0 :(得分:0)
如果你提供了一个更具体的例子,以及你正在使用的语言/实现,那将会有所帮助。
从字面上理解你的问题,但是......
s/(C|R)(\d)-(\d)/\1\2-\1\3/g
修改强>
根据评论,您想要替换
\b(C|R)(\d+)-(\d+)
与
\1\2-\1\3
答案 1 :(得分:0)
你必须做这样的事情(Python示例):
>>> import re
>>> test = 'C1-2 R1-2'
>>> re.sub(r'([A-Z])(\d+)-(\d+)', r'\1\2-\1\3', test)
'C1-C2 R1-R2'
基本上,您需要将([A-Z])(\d+)-(\d+)
替换为\1\2-\1\3
。
答案 2 :(得分:0)
([A-Za-z]){1,}([0-9]{1,})-([0-9]{1,})
正则表达式匹配:
替换模式是这样的:
$1$2-$1$3
PHP preg中的示例:
$output = preg_replace('/([A-Za-z]){1,}([0-9]{1,})-([0-9]{1,})/', '$1$2-$1$3', $input);