質問

もう一度壁にぶつかった。

正規表現を使用してエスケープ文字を置き換える方法は? タブ文字(\ t)が2回以上出現する場合、これらの2つ以上の出現を単一の\ tに置き換えます。 たとえば、\ t \ t \ tが来た場合、それを\ tのみに置き換えます。 これを行う方法

テキストファイルの読み取りと正規表現の適用に関するもう1つの問題に直面しています。

テキストファイルの読み取りと正規表現にC#を使用しています。 テキストファイル(txt拡張子を持つファイル)を開くと、通常のファイルビューが表示されます。しかし、" textReader"を使用して同じファイルを読み取ると、文字列に保存すると、次のようなテキストが表示されます。

  

O K \ t \ t \ t \ t \ t \ tEmail:
  k.o@gmail.com \ rPhone:+ 91
  992 \ t \ r \ rエクスペリエンス概要
  \ rビジネスインテリジェンスとデータ
  6人以上の倉庫設計者
  OLAPの長年の経験
  Project。\ r \ r \ rTechnology \ rBelowは
  重要なソフトウェア製品のリスト
  そして私が働いてきたツール
  with。\ r \ rSoftware
  Products \ r \ a \ r \ aOperating
  システム:\ rWINDOWS NT、WINDOWS 2000、
  UNIX \ rデータベース管理
  システム:\ rOracle 8i、Oracle 9i、Oracle
  10g、SQL-Server 7.0、DB2 \ rSoftware
  パッケージ:\ rVSS、ER Win、M1 \ rFourth
  生成言語:\ rPL / SQL、
  SQL * PLUS \ rTools&
  テクノロジー:\ rOracle Warehouse
  Builder 10.1.0.4.0、ORACLE 9i AS、
  ORACLE Discoverer Reports Data Stage
  8.0、Fast Track 8.5、DB @ Cube、JavaScript、JSP、JDEV、BI BEANS、ASP、
  ASP.NET、Ab
  Initio \ r \ r \ a \ r \ a \ v \ r \ r \ fAssignments \ rThe
  さまざまな割り当ての詳細
  私が処理したものはここにリストされています、
  時系列で
  order。\ r \ rName \ r \ aAvery Dennison Data
  倉庫\ r \ a \ r \ aClient \ r \ aAvery
  デニソン、彼はプロジェクトに挑戦します
  既存の
からEDWをフィードすることです   にデータがある倉庫
  集約
  level。\ r \ a \ r \ a \ r \ rName \ r \ aAOL BI
  (Omniture)\ riteチーム。デザイン、
  コーディングとテストと一緒に
  オンサイトチームとの調整。
  \ r \ a \ r \ aツール& Technologies \ r \ aUnix
  プラットフォーム、Oracle 10g、Py。
  正しい要件を提供しますが、
  また、パフォーマンスは
  許容できる
  range。\ r \ a \ r \ a \ r \ r \ r \ r \ r \ r \ r \ r \ r \ r \ r \ rName \ r \ aAIW
  イベント(ABSA)\ r \ a \ r \ aClient \ r \ aABSA、
  南アフリカ\ r \ a \ r \ aP

i.e、\ s、\ r、\ fなどのすべてのエスケープ文字が表示されます。このため、同じテキストを文字列変数に読み込んだ場合、通常のテキストで機能する正規表現は機能しません。

この問題を解決する方法を知っている人はいますか?

ありがとう

もう1つクエリがあります。行末のテキストを一致させたい。私はこれに$を使用しようとしました。たとえば、" assignment"で終わるテキストに一致させるには、正規表現assignment $を使用しました。通常のテキストで機能しました。しかし、streamreaderで指定されたテキストでこのregxを実行すると、この正規表現は機能しません。ストリームリーダーは、Assignments \ r \ r \ fのような文字列を提供します。この種類のテキストで行末または行頭を一致させる方法は?

役に立ちましたか?

解決

文字列" \ r" と一致させようとしていますか?エスケープ文字をエスケープする必要があります:

"(\\r)*"

この表現は、" \ r" と何度でも一致します。 " \\" がリテラル" \" にエスケープするため、機能します。同じアイデアを" \ t" にも適用できます。

他のヒント

/\t{2,}/\t/

2つ以上のタブを単一の文字に置き換えます。

タブ文字には次のようなものを使用します:

/(\t)*/\1/g
  1. 1つの文字(タブ文字)でグループを作成し、可能な限り一致させます。
  2. 完全一致を単一の文字に置き換えます
  3. (グローバル)全文にパターンを使用します。

次に、置換する他のエスケープ文字に同じ式を使用できます。

\\ t \\ t \\ t \\ t {3} に置き換えることができます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top