7

誰かがこの正規表現の何が問題なのか教えてもらえますか?

((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\\:([0-9]{2,5})

これに一致する場合:assfasfas> 192.168.1.1:8080192.168.222.43:8286

キャプチャされたグループには192.168.1.1と8080が必要です

ありがとうございました

4

1 に答える 1

18

本当にIPアドレスの検証を行う必要がない限り、この獣は「IP部分」と「ポート部分」を一致させるには複雑すぎるため、正規表現を単純化することをお勧めします。私の提案は

(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}):(\d{1,5})

グループ1と2は、それぞれIPとポートを保持します。そして、上記はすでに必要以上に複雑です。私見では、これと同じくらい単純なものでも十分です。

(\d+\.\d+\.\d+\.\d+):(\d+)

二重の円記号は正規表現ではなくJava文字列の要件であるため、省略したことに注意してください。

于 2010-05-25T21:48:56.713 に答える