このサイトをビューするために JavaScript を有効化してください。

Altova StyleVision 2020 Enterprise Edition

[検索] (Ctrl+F) コマンド ic_find により、デザイン ビューや JavaScript エディター、 Authentic View、 と XSLT-for-HTML、 XSLT-for-RTF、 XSLT-for-FO、 と XSLT-for-Word 2007+ スタイルシート内にある単語や単語の集合を検索することができます。

 

デザインビュー、HTML プレビュー、 と Authentic View

デザインビュー、HTML プレビュー、  または Authentic View にて [検索] コマンドを選択すると、以下のダイアログが表示されます。

 

dlg_edit_find

 

 

以下の点に留意してください:

 

デザイン ビューにて静的なデータは検索対象になるものの、ノード名の検索は行われません。

Authentic View では動的なデータ (XML データ) は検索されるものの、静的な (XSLT) 入力から得られたテキストは検索対象になりません。

単語全体を検索するには、[単語の完全マッチ] にチェックを入れてください。これにより例えば、"soft" という検索語に対して "soft" という単語はマッチするものの、"software" という単語内にある "soft" はマッチしません。

単語の一部にも検索語をマッチさせるには、[単語の完全マッチ] のチェックを外してください。これで "software" にも "soft" がマッチするようになります。

検索に大文字と小文字を区別しない場合、[大文字/小文字を区別] チェック ボックスのチェックを外してください。これで例えば "soft" という検索語に対して "Soft" がマッチするようになります。.

 

XSLT-for-HTML、 XSLT-for-RTF、XSLT-for-FO、XSLT-for-Word 2007+、 と JavaScript エディター

XSLT-for-HTML、XSLT-for-RTF、XSLT-for-PDF、XSLT-for-Word 2007+、 または JavaScript エディター タブが表示されている状態で [検索] コマンドを選択すると、以下のダイアログが表示されます:

 

dlg_edit_find_xslt1

 

以下のオプションから選択することができます:

 

大文字と小文字を区別: オンに切り替えられると大文字と小文字が区別されます (Addressaddress とは同じではありません)。

単語の完全マッチ: テキスト内の完全な用語のみが一致されます。例えば、入力文字列 fit は、単語の完全マッチがオンに切り替えられていると、検索文字列内で用語 fit にのみ一致します。例えば、 fitness 内の fit は一致しません。

正規表現: オンに切り替えられていると、検索用語は正規表現として読み取られます。正規表現の使用法に関して説明されている 正規表現 を参照してください。

アンカーの検索: 検索用語が入力されると、ドキュメント内の一致がハイライトされ、これらの一致の一つが現在の選択範囲としてマークされます。検索アンカー のトグルは最初の現在の選択範囲がカーソルの位置にチアして相対的に作成あれるかを決定します。アンカーの検索 がオンに切り替えられている場合、現在選択されている一致が現在のカーソルの位置からの次のマッチになります。アンカーの検索 がオフに切り替えられていると、最初の現在の選択範囲はドキュメント内最初からの最初のマッチとして考えられます。

選択範囲内の検索: オンに切り替えられていると、現在のテキストの選択範囲をロックし、検索範囲を選択範囲に制限します。それ以外の場合、ドキュメント全体が検索されます。テキストの新規の範囲を選択する前に、選択範囲内を検索オプションをオフに切り替え、テキストの新規の範囲を選択します。

 

次を検索 コマンド

[次を検索] (F3) コマンド ic_find_next により、最後に行った検索にマッチする次の箇所が検索されます。検索機能の使用方法については 検索 の項目を参照ください。

 

置換えコマンド (Ctrl+H)

[置き換え] コマンドはデザイン ビュー、JavaScript エディター、そして (Basic エディションではサポートされていない) Authentic View にて有効になり、テキスト文字列の検索を行い、マッチした対象を別のテキスト文字列により置き換えます。

 

正規表現の使用

正規表現 (regex) を使用してテキスト文字列を検索することができます。これを行うには、正規表現 オプションをオンに切り替えます (上記参照)。これは検索用語フィールド内のテキストが正規表現として評価されることを指定します。正規表現として評価されている検索用語フィールド内のテキストを指定します。次に、検索用語フィールド内に正規表現を入力します。正規表現の作成のヘルプに関しては検索用語フィールドの右にある「正規表現式ビルダー」 ボタンをクリックします。 ビルダー内のアイテムをクリックして、対応する正規表現メタ文字を検索用語フィールドに入力します。以下はメタ文字を簡単に説明するテーブルです。

正規表現のメタ文字

正規表現 メタ文字のリストは以下の通りです。

 

.

任意の文字を一致する。 これは単一の文字のプレースホルダーです。

\(

一致をタグした範囲の開始をマークする。

\)

一致をタグした範囲の終了をマークする。

\(abc\)

\(\) メタ文字は、タグされた式の開始と終了をマークします。一致する箇所を、後で参照する(バックレファレンス)目的のためにタグ(「記録」) する場合、役に立つ可能性があります。 9つまでの式をタグ付けすることができます (検索、または、置換フィールド内で後に参照することができます)。

 

例えば、 \(the\) \1 は文字列 the に一致します。この式は、以下のように説明することができます: 前に一致しているタグ付けされた箇所へバックレファレンスが後に続く、スペース文字が後に続く文字列「the」 に一致させる(そしてタグ付けされた箇所として記録する) 。

\n

n1 から 9 までのの整数の値を持つことができる 変数 の場合。式は、置き換える際にタグ付けされた1番目から9番目までの箇所を参照することができます。 例えば、検索文字列が Fred\([1-9]\)XXX で、置換文字列が Sam\1YYY の場合、検索文字列内に、明示的に番号1とインデックスされている1つのタグされた式が存在することを意味し、また、置換文字列内では、タグ付けされた式は、 \1 と参照されています。 検索と置換式が Fred2XXX に対して適用されている場合、 Sam2YYY が生成されます。

\<

単語の先頭に一致。

\>

単語の末尾に一致。

\x

このコンテキスト以外では特別な意味を持つ、文字 x が使用できるようになります。 例えば、 \[ は、文字セットの始まりではなく、 [ として解釈されます。

[...]

文字のセットを示します。 例えば、 [abc] は、 a、b または c のいずれかを意味します。範囲も使用することができます: 例えば、 [a-z] をすべての小文字のために使用できます。

[^...]

セット内の文字の補完です。 例えば、 [^A-Za-z] は、アルファベット文字を除く全ての文字を意味します。

^

行頭に一致。(セットの内部で使用される以外の場合。上を参照してください) 。

$

行末に一致。 例: A+$ が1つ以上の行末の A を検索する場合。

*

0 回以上一致。例えば、 Sa*m は、 Sm、Sam、Saam、Saaam に一致するなど。

+

1 回以上一致。 例えば、 Sa+m は、Sam、Saam、Saaam に一致するなど。

 

 

特別文字の表記

以下の式に注意してください。

 

\r

キャリッジリターン (CR)。CR (\r) または LF (\n) を使用して新規のラインを検索または作成します。

\n

改行 (LF)。CR (\r) または LF (\n) を使用して新規のラインを検索または作成します。

\t

タブ文字

\\

正規表現内に表示される文字をエスケープするために使用してください。例: \\\n

 

正規表現のサンプル

このサンプルは、正規表現を使用してテキストを検索し置き換える方法について説明しています。多くの場合、テキストの検索と置換えは複雑ではなく、正規表現を必要としません。しかしながら、通常の検索と置換え操作ではテキストを操作できないインスタンスが存在する場合があります。例えば、数千行からなる XML ファイル内の1つのオペレーション内の特定の要素を、囲まれたコンテンツに影響を与えずに、名前を書き換える必要がある場合が挙げられます。 もう1つの例は、要素の複数の属性の順序を変更する場合です。この場合は、手動で行う際に必要とされる手間を省くため、正規表現の使用が役に立ちます。

 
 

サンプル 1: 要素の名前変更

サンプル XML コードリストには、ブックのリストが含まれています。このサンプルの目的を、の各ブックの <Category> 要素を <Genre> と置き換えることとします。この目的を達成するために正規表現を使用します。

 

<?xml version="1.0" encoding="UTF-8"?>
<books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="books.xsd">
  <book id="1">
    <author>Mark Twain</author>
    <title>The Adventures of Tom Sawyer</title>
    <category>Fiction</category>
    <year>1876</year>
  </book>
  <book id="2">
    <author>Franz Kafka</author>
    <title>The Metamorphosis</title>
    <category>Fiction</category>
    <year>1912</year>
  </book>
  <book id="3">
    <author>Herman Melville</author>
    <title>Moby Dick</title>
    <category>Fiction</category>
    <year>1851</year>
  </book>
</books>

 

必要条件を満たすには、以下のステップを踏んでください:

 

1.検索と置換ダイアログボックスを開くには、 Ctrl+H を押します。

2.正規表現の使用 _ic_find_regex をクリックします。

3.検索フィールドに次のテキストを入力します: <category>(.+)</category> 。この正規表現は、すべての category 要素に一致し、ハイライトされます。

inc-RegexExample01

(既知ではない)各要素の内部のテキストに一致するには、タグ付けされた条件式 (.+) が使用されています。タグ付けされた条件式 (.+) は、「1つまたは複数の文字 .+ の発生をマッチし、このマッチを記録します。」を意味します。次のステップで表示されているように、後でタグ付けされた条件式を参照する必要があります。

 

4.置換フィールド内に、 次のテキストを入力します: <genre>\1</genre> 。この正規表現置換えのテキストを定義します。検索フィールドから既にタグ付けされた条件式にバックレファレンスするために \1 が使用されていることに注意してください。 すなわち、このコンテキストでは、 \1  「現在一致する <category> 要素の内部のテキスト」を意味します。

5.全てを置き換える _ic_regex_replaceall クリックして、結果を確認します。すべての category 要素が、このサンプルの目的である genre に名前を変更されました。

 

サンプル 2: 属性の順序を変更する

下のサンプル XML コードリストには製品のリストが含まれています。各製品には以下の2つの属性が存在します: idsize。各 product 要素内の idsize 属性の順序の変更をこのサンプルの目的とします。 (すなわち、 size 属性が id の前に来るように変更します)。この条件を満たすために正規表現を使用することができます。

 

<?xml version="1.0" encoding="UTF-8"?>
<products xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="products.xsd">
  <product id="1" size="10"/>
  <product id="2" size="20"/>
  <product id="3" size="30"/>
  <product id="4" size="40"/>
  <product id="5" size="50"/>
  <product id="6" size="60"/>
</products>

 

必要条件を満たすには、以下のステップを踏んでください:

 

1.検索と置換ダイアログボックスを開くには、 Ctrl+H を押します。

2.正規表現の使用 _ic_find_regex をクリックします。

3.検索フィールドに次のテキストを入力します: <product id="(.+)" size="(.+)"/> 。 この正規表現は、 XML ドキュメント内の製品要素に一致します。 (既知ではない) 各属性の値に一致するためには、タグ付けされた条件式 (.+) が2度使用されていることに注意してください。 タグ付けされた条件式 (.+) は、各属性の(.+ である文字の1度、または複数回の発生である)値に一致します。

4.検索フィールドに次のテキストを入力します: <product size="\2" id="\1"/> 。 この正規表現には、一致した製品の要素のテキストの代替テキストが含まれています。 \1\2 の2つの参照が使用されていることに注意してください。 これらは、検証フィールドからタグ付けされた条件式に対応しています。すなわち、 \1 は、 「属性 id の値」を意味し、 \2 は「属性 size の値」を意味します。

inc-RegexExample02

6.全てを置き換える _ic_regex_replaceall をクリックして、結果を確認します。すべての product 要素は属性 size が属性の id 前に置かれるように更新されました。

 

 

 

 

(C) 2019 Altova GmbH