0

検討: "\[|\(phone\)\]"

メタデータフィールドを作成しているので、「phone」という用語を含むファイル名にフラグを立てる必要があります。大文字小文字の基準が存在しないため、混合大文字小文字または単一大文字小文字のバリエーションなどを確認できphone Phone PHONEました。単語を区切るスペースがある場合とない場合があります。アンダースコアがある場合もあるので、単語の境界を使用できません。すべての場合において、単語は括弧または括弧phoneのいずれかに含まれます。[]()

Powershellスクリプト用に作成しようとしている正規表現は、大文字と小文字を区別せず、またはで終わるパターンまたはが続くパターンを[検索します。 (photo])

"\[|\(phone\)\]" <-それは私がここに持っているものですか?

4

2 に答える 2

1

Powershell は .NET 正規表現を使用するため(?i). しかし、Powershell-match-replaceはデフォルトで大文字-imatch小文字を区別し-ireplaceません。したがって、正規表現は複雑すぎる必要はありません。

\[phone\]|\(phone\)

次のようなテキストに一致します:[phone]または(PhONe)

正規表現は非常に具体的であることに注意してください。この場合、()または[]との間にスペースを入れることはできませんphone

于 2013-02-05T14:46:48.163 に答える
1

2つの可能な解決策のうちの1つを受け入れることでそれを行います。

\[phone\]|\(phone\)

この方法では、(電話) または [電話] のいずれかと一致しますが、[電話) と (写真] とは一致しません。

ただし、大文字と小文字を区別しないようにフラグを設定する必要があります。たとえば Javascript では、/[phone]|(phone)/i のように区切り文字の後ろに i を追加します。

于 2013-02-05T14:47:48.317 に答える