UltraEdit - 正規表現の置換

UltraEdit - 正規表現の置換

私はさまざまな組み合わせを試しましたが、成功しませんでした。この時点でご協力ありがとうございました。

この行の終わりを何度も(約300回)交換する必要があります。

:;XXXXXX (lenght may vary)

私はそれを見つけることができ、:;*$それは私に必要なものを正確に強調しました!ただし、交換することはできないため、次のようになります。:;XXXXXX;;;

*- 何でも一致する必要があります。

$- 行末と一致する必要があります(はい)。

他のすべてと同様に、*括弧内に入れようとしましたが、役に立ちませんでした。もちろん、置き換えは行われますが、入力と同じ形式です。たとえば...代わりに私はそれを得ます - それが私が得ることができる最善です。(*); [*]:;(*);;;$:;XXXXXX;;;:;*;;;

これはUltraEdit正規表現形式ですが、このソフトウェアはUnixおよびPerl正規表現も処理できます。

あなたがこれを提案できる何らかの方法で試してみましょう(ターミナル、その他のソフトウェアなど)。

編集する:

既存のNokiaから新しいNokia(s30+シリーズ)に連絡先を転送しようとしています。 backup.nbuからのみ.vcf連絡先を取得しました。 .txt経由でファイルに入れましたcat *.vcf > combined.vcf。完全なプロセスを実行する必要があるExcelマクロとPHPスクリプトを見つけましたが、うまくいきませんでした。しかし、みんなあまり関係がないようです。その後、この特定のモデルが処理できるVcard形式を見つけました。今、同じように見えるように修正しようとしています。線を変更することは問題ありませんが、最後を編集する必要があります。名前を変更し;:NAMEないでください...;:NAME;;;

上記の方法を試しました。その後、私は提案を試しましたsed -ri "s/\:\;X+$/&\;\;\;/g"

私はDOS行の終わりが問題である可能性があると確信していたので、次を実行してからsed -i 's/\r//g' combined.vcf提案されたsidコマンドを再実行しました。

から:N;CHARSET=UTF-8;ENCODING=8BIT:ALFA

到着する:N;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:;ALFA;;;

編集2:

だから最初から始めました...

  1. .vcf ファイルをマージしました。

  2. UltraEditで開き、LF(CRLFで)として保存 -sed端末なしで試してください

  3. 検索と置換でPerl Regexを選択しました。

    • 探す(:;)(.*)

    • 変える\1\2;;;

注:.*- 0個以上のすべての文字と一致します(改行を除く)...

完璧!

ベストアンサー1

必要なのは逆参照と言います。その意味は」コンテストで選択したすべてをここに配置します。」と次のように動作します。

  1. 文字列の一部を選択するには、一致する正規表現に括弧を使用してください。
  2. 番号付きの逆参照を使用してください(\1最初の角かっこ、\22番目の括弧など)。

sedこれをサポートすると、次のコマンドが生成されます(sed角かっこをエスケープする必要がありますが、他の正規表現ベースのソフトウェアではそうでない可能性があります)。

sed -i 's/^\(:;.*\)$/\1;;;/' combined.vcf

おすすめ記事