1

私の正規表現では、サンプル テキスト内では、大文字と小文字の az、数字、特殊文字など、任意の文字が許可されていると言いたいです。

たとえば、私の正規表現は、ドキュメントが html であることを確認している可能性があります。したがって:

"/\n<html>[]+</html>\n/"

[]+ を試してみましたが、気に入らないようですか?

4

2 に答える 2

3

使用とは、 と の間に[XXX]+ある任意の文字を1 回以上使用することを意味します。[]

[ここでは、 と の間に文字を入れていない]ため、問題が発生します。


「可能な文字」と言いたい場合は、.
注を使用できます。デフォルトでは、改行には一致しません。必要に応じて、パターン修飾子をいじる必要があります。

任意の文字を言いたい場合は、次を使用できます。

  • 小文字の場合:[a-z]
  • 大文字の場合:[A-Z]
  • 両方のための :[a-zA-Z]

そして、数字の場合:

  • [0-9]: 任意の数字
  • [a-zA-Z0-9]: 任意の小文字または大文字、および任意の数字。


その時点で、おそらく以下を参照してください。


その後、次のような正規表現を使い始めるとき

/.+/s

一致する必要があります:

  • 任意の可能な文字
    • 改行を含む
  • 1回以上

期待したときにも「停止」しないことがわかります-これは、マッチングがデフォルトで貪欲であるためです-の?後にa を使用する+か、U修飾子 ;を使用する必要があります。詳細については、繰り返しのセクションを参照してください。


実際、正規表現を使い始めたい場合は、時間をかけてマニュアルの PCRE パターン セクションのすべて注意深く読むことをお勧めします ;-)


ああ、ところで、正規表現を使用して HTML を解析するのは悪い考えです...

一般に、次のような DOM パーサーを使用する方がはるかに優れています。

于 2010-04-04T10:35:20.337 に答える
2

ドット.は「任意の文字」のメタ文字です

于 2010-04-04T10:31:41.580 に答える