1

正規表現を使用して、次のテキスト文字列内の文字を確認するにはどうすればよいですか。

===ロゴ===

私は正規表現テスターを使おうとしましたが、これを試したので正しい表現を思い付くことができました:

 /^[=]{3}$/
  1. 文字列内を検索して、テキストが3つの等号で始まる場所を見つけたい。
  2. 等号内の文字列またはその他の文字を検索します。
  3. さらに3つの等号を見つけます。式を終了します。

前もって感謝します。

4

3 に答える 3

4

この正規表現を使用してみてください:

/===[^=]+===/

テキストをキャプチャする場合は、括弧で囲みます。

/===([^=]+)===/

これがフィドルです:http://jsfiddle.net/jufXA/


テキストに等号が含まれている可能性がある場合(ただし、明らかに3未満)、代わりにすべてを怠惰に一致させる必要があります(少し遅くなります)。

/===(.+?)===/

これがフィドルです:http://jsfiddle.net/jufXA/1/

于 2013-02-12T18:16:46.373 に答える
2

私が好む:

/([=]{3})\s*(.+?)\s*\1/.

これにより、テキストマークアップ(3つの等号)が最初に配置され、最後に後方参照が使用されます。また、スペースのテキストをトリミングします。これはおそらく必要なことです。

于 2013-02-12T18:23:37.873 に答える
2

簡単なのはどうですか...

/===(.+?)===/

:_

$test = "here's ===something special===, like ===this=one===";
preg_match_all('/===(.+?)===/', $test, $matches);
var_dump($matches[1]);

怠惰はここではちょっとした美徳です:正規表現エンジンは最初の「終了区切り文字===」を超えて前進しません。ただし、がない?場合は、否定された文字クラスを使用する必要があります(ただし、繰り返しになりますが、どう===something=like=this===でしょうか?)。

于 2013-02-12T18:16:50.140 に答える