0

電話番号のようなものに一致する正規表現を作成しようとしています。文字列に複数の数字がある場合は、それらの両方に一致します。電話番号は次のように定義されます。

  • 10文字以上
  • で終わらないNが、他の文字/単語で終わることができる

だから私はこれらを一致させたい:

  • 07158245215
  • 01244356356
  • 07158245215Y
  • 01244356356Y
  • 07158245215P
  • 01244356356P
  • 07158245215X
  • 01244356356X
  • 07158245215 仕事
  • 01244 356356 仕事
  • work 07158 245215 / home 07158 245215 // 難しいかもしれません
  • 仕事01244356356

そして、これらを禁止します:

  • 071582 45215N
  • 01244356356N
  • 01244356356 ん

私は否定的な先読み/後読みをいじりましたが、理解できるものは何も得られません。これは可能ですか、それとも .NET のような高級言語で行うべきでしょうか?

4

1 に答える 1

1
(?:\d\s*){10,}(?![\d\s]*N)

は、その番号の後にN. 各桁の間に任意の数のスペースを入れることができます。

例のようにすべての電話番号が常に で始まる場合0は、それを正規表現に明示的にコーディングできます。

\b0\s*(?:\d\s*){9,}(?![\d\s]*N)

RegExr で参照してください

于 2012-11-15T11:25:52.587 に答える