0

より複雑な正規表現を使用して、「|」の3番目のオカレンス(スペース、パイプ、スペース)を含むすべてを削除する必要があるExcelセルのセットがあります。一部のセルでは、オカレンスが少ないか、0である場合があります。 、他の人は10-20+を持っているかもしれませんが。全部で約40,000個のセルが1列にあります

Canon USA BJC 3000 | BJC 3010 | BJC 6000 | C755 | F30 | F50 | F60 | F80 | I550 | I850 | MP700 | MP730 | S400 | S450 | S500 | S520 | S530 | S600 | S630 | S750 Black Ink Cartridge 420 yield - 4479A003

になる必要があります

Canon USA BJC 3000 | BJC 3010 | BJC 6000

どこから始めればよいか、またはこれを引き出すための適切な正規表現について何かアドバイスはありますか?

4

1 に答える 1

2

Excelの正規表現がどのように機能するかは正確にはわかりませんが、次のようなものが機能するはずです。

((?:[^\|]*\|){2}[^\|]*).*

\1これを最初のキャプチャグループのコンテンツ(通常はまたは)に置き換え$1ます。

例: http: //gskinner.com/RegExr/?31sbq

説明:

(                  # start capture group 1
  (?:                # start non-capturing group, repeated exactly twice
     [^\|]*\|          # match any number of non '|' followed by '|' 
  ){2}               # end non-capturing group
  [^\|]*             # match any number of non '|'
)                  # end capturing group
.*                 # match to end of string

これを最初のキャプチャグループに置き換えると、.*一致するものがすべて削除されます。

于 2012-08-17T22:40:34.810 に答える