2017-11-05 20 views
0

安心してAPIのURLルーティングルールを作成しようとしています。すべての文字列、ドットの間の文字列を一致させる正規表現と、ダッシュを含む文字列が一致しない

私は3つの簡単なルールは以下の Regex必要

  1. マッチすべての文字列
  2. のようなアンドロイドのパッケージ名の間でドットを
  3. マッチ文字列:com.test.package
  4. のような、間にダッシュを含む文字列と一致していませんが:test-health

このルールを試したところ、文字列のようなアンドロイドのパッケージ名を除いてすべて一致しました。ここでのルールは次のとおりです。

<id:\\w+[.+]?> 

P.S:私は最初、内部ので、私はそれらを省略した正規表現文字列の終了として^$を処理Yii2 FrameworkのURLがルーティングにこのRegexを使用しています。

+1

ものになるだろう(?:。\ \ + W)* $'? – revo

+0

@revoええ、どうもありがとうございます。これはうまく動作します。他の人もそれを使うことができるように答えてもよいでしょう。 – sobbe

答えて

1

+を追加したところで、あなたのキャラクタークラスを作成するのは間違いでした。私はあなたが量子を適用しようとしていると仮定しますが、文字クラス内では機能しません。 [.+]?は、ピリオドまたはリテラル+を意味するか、まったく意味しません。

それを削除すると、+の正規表現は近い仕事である\w+\.?です。しかし、それは単語とピリオドの連続するすべての出現と一致しません。 word.word.wordとあなたにも全体の発現を定量する必要があります。最大であなたの必要性に合う(?:\w+\.?)+

正規表現は+ワット `^ \などの^\w+(?:\.\w+)*$

関連する問題