我正在修改一个文件以符合新标准。许多年前,我只学了一周的RegEx,但从来没有广泛地使用过。因此,我在这里寻求一个快速的解决方案。有人愿意帮忙吗?
-更新--
感谢您的回复,以下是问题的更多详细信息:
以下是该文件的快照
"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" 基本上,我需要检测第二列中所有后面跟着一个数字的"-“,并在单词开头的字母之间插入。
关于语言,我实际上使用的是Notepad++,如果涉及到这一点,我认为同样的表达式可以被移植到其他平台,比如SED。
发布于 2012-09-26 09:13:23
([A-Za-z]){1,}([0-9]{1,})-([0-9]{1,})正则表达式匹配:
<代码>F210
替换模式是这样的:
$1$2-$1$3PHP preg示例:
$output = preg_replace('/([A-Za-z]){1,}([0-9]{1,})-([0-9]{1,})/', '$1$2-$1$3', $input);发布于 2012-09-26 01:43:44
如果你提供一个更具体的例子,以及你正在使用的语言/实现,将会有所帮助。
不过,从字面上看你的问题...
s/(C|R)(\d)-(\d)/\1\2-\1\3/g编辑:
根据注释,您想要替换
\b(C|R)(\d+)-(\d+)使用
\1\2-\1\3发布于 2012-09-26 01:46:37
您必须这样做(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'基本上,您需要用\1\2-\1\3替换([A-Z])(\d+)-(\d+)。
https://stackoverflow.com/questions/12588265
复制相似问题