0

新しい標準に準拠するようにファイルを変更しています。私は何年も前に1週間だけ正規表現を学びましたが、それを広範囲に使用することはできませんでした。したがって、私はここで迅速な解決策を探しています。誰か助けてくれませんか?

-更新-
すべての返信に感謝します。質問の詳細は
次のとおりです。以下はファイルのスナップショットです。

"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などの他のプラットフォームに移植することで同じ表現をリースできると考えていました。

4

3 に答える 3

0

より具体的な例と、使用している言語/実装を提供すると役立ちます。

しかし、文字通りあなたの質問を取ります...

s/(C|R)(\d)-(\d)/\1\2-\1\3/g

編集:

コメントに照らして、あなたは置き換えたい

\b(C|R)(\d+)-(\d+)

\1\2-\1\3
于 2012-09-25T17:43:43.643 に答える
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

于 2012-09-25T17:46:36.833 に答える
0
([A-Za-z]){1,}([0-9]{1,})-([0-9]{1,})

正規表現の一致:

  • 文字AからZ、aからzを1回以上(最初のキャプチャ)、その後に
  • 0から9までの文字を1回以上(2回目のキャプチャ)、その後に
  • 文字-、その後に
  • 0から9までの文字を1回以上(3回目のキャプチャ)

置換パターンは次のようなものです。

$1$2-$1$3

PHP pregの例:

$output = preg_replace('/([A-Za-z]){1,}([0-9]{1,})-([0-9]{1,})/', '$1$2-$1$3', $input);
于 2012-09-26T01:13:23.313 に答える