1

私のデータベースでは、いくつかのキーワードは「/」と「\」の文字で囲まれています。

アプリケーション側では、ColdFusionで、「/」と「\」で囲まれたテキストの文字列の前後に表示されるテキストを抽出して分離しようとしています。</ p>

つまり、私に文があるとしましょう。私のバロニーには名があり、それは/HOMER\です。

  1. 2つを分離したいので、文字列を持つ1つの変数があります。私のbaloneyには名があり、
  2. および「/」と「\」のない HOMERを持つ別の変数</li>

ここでも、以下に示すように、「/」と「\」はテキスト文字列の前後に表示できます。

/Ash\ Gotta catch’em all

/Nike\ Just do it.

Impossible is nothing. /Adidas\

Microsoftは、発売されたばかりのWindowsに関連する訴訟にすでに直面しており、オペレーティングシステムテクノロジの設計者は、Microsoftが「タイル」の特許を取得したと非難しています。

SurfCastは昨日メイン州の米国地方裁判所に提起された苦情の中で、MicrosoftがSurfCastの対象となる「デバイスとソフトウェア製品の製造、使用、販売、販売の申し出」により、4つの特許の1つである第6,724,403号を侵害していると述べた。特許。これには、WindowsPhone7およびWindowsPhone8オペレーティングシステムを使用するモバイルデバイスと、/ Windows8\を使用するPCが含まれます。

「/」と「\」で囲まれたテキストの文字列の前後に表示されるテキストを抽出して分離するにはどうすればよいですか?

4

1 に答える 1

6

個別のテキストが常に開始/終了にある場合は、次のようにListFirstを使用できます。

<cfset First = ListFirst(Text,'/\') />
<cfset Last = ListLast(Text,'/\') />

そして、両方の部分が別々の変数になります。どちらがどちらであるかLeft(Text,1)を判断するには、元のテキストがで始まっているかどうかを判断するためにを実行する必要があります/


それ以外の場合は、 rematch を使用して/...\テキストを抽出できます。

<cfset Slashes = rematch('/[^\\]+(?=\\)',Text) />

これは、-で始まる一致の配列を返します/-CFの正規表現の最初のスラッシュをキャプチャすることを避けることはできません(ルックビハインドサポートなし)が、後で部分文字列を使用して削除できます:

<cfset Slashes[x] = Slashes[x].substring(1) />

(結果が1つだけ1の場合は代わりに使用xします。そうしないと、ループが必要になります。)


この値のないテキストを取得するには、次のような単純な置換 を使用できます。

<cfset Unslashed = replace(Text,'/#Slashes[x]#\','') />
于 2012-10-31T15:25:13.133 に答える