2017-01-08 6 views
3

/^(.*?)\/$の行の間に何かをパターンにマッチさせようとしています。 (.*?)はすでに/と一致していますので、anything///////////と一致しますが、一致するのはanything/です。RegEx(。*?)1文字以外のもの

(.*?)または代替ソリューションから/を除外する良い方法はありますか?

答えて

3

使用negated character class[^\/]

/^([^\/]*)\/$/ 

あなたには、いくつかの他の区切り文字を使用したパターンでoverescaping回避することができる、PHPでregex demo

を参照してください、~言う:

$rx = '~^([^/]*)/$~'; 

詳細

  • ^ - 文字列
  • ([^\/]*)の開始 - 文字通り/
  • $ - - 文字列の末尾グループ1 0+ /
  • \/以外の文字を取り込みます。

は、それが貪欲1、*ではるかに効率的になりますので、あなたはこの否定文字クラスと怠惰な量指定子*?を必要としません。

+1

イップを、素晴らしいです!追加情報の答えとして受け入れるだろう:) – KaekeaSchmear

2

(。*?)や代替ソリューションを除外する良い方法はありますか?

否定文字クラスを使用します

[^\/]*? 
関連する問題