2

次のようなテキストを正規表現と照合する必要があります。

====================
    DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.

    Copyright 2008-2009 Company, Inc. All rights reserved.


    The contents of this file are subject to the terms of the Common Development
    and Distribution License("CDDL") (the "License"). You may not use this file
    except in compliance with the License.

    You can obtain a copy of the License at https://oss.oracle.com/licenses/CDDL
    See the License for the specific language governing permissions and limitations
    under the License.

    When distributing the Covered Code, include this CDDL Header Notice in each file
    and include the License file at https://oss.oracle.com/licenses/CDDL.
    If applicable, add the following below this CDDL Header, with the fields
    enclosed by brackets [] replaced by your own identifying information:
    "Portions Copyrighted [year] [name of copyright owner]"
    ====================

    Copyright 2011-2013 Company. All rights reserved.

=========== の間の部分は静的であるため、この式を静的な方法で検索できますが、整形式の正規表現ではありません。= 間のすべてのテキストを作成するにはどうすればよいですか========== 正規表現で静的?

4

2 に答える 2

4

\Q実際にコードを書くことができず、正規表現しか書けない場合は、 andを使用して、パターンの特定の部分のすべてのメタ文字をオフにすることができます\E

startOfRegex\Q============...\EendOfRegex

このように、 と の間の部分に\Q\E、任意の正規表現メタ文字 (パタンテーゼ、ブラケット、アスタリスク、バックスラッシュなど) を含めることができますが、startOfRegexendOfRegexは通常の任意の正規表現パターンにすることができます。

文字列にバックスラッシュが含まれている\Eか、バックスラッシュで終わっている場合にのみ問題が発生します。その場合、Tim PietzkerPattern.quoteが唯一の一般的な方法です。

于 2013-06-28T12:53:20.417 に答える