2012-07-24 201 views
1

从文本垃圾列表中我使用正则表达式。下面将做这个工作来解析代理模式
(\d{1,3}\.){3}\d{1,3}:\d{2,5}。但是,这种模式解析文字是这样的:代理模式的正则表达式

692.248.222.879:43780
692.83.47.579:43780

这是不可能的IP地址。我想知道,如何使用正则表达式跳过这种范围?

我喜欢的工具:Java或C#,记事本++。但是任何语言都可以。

+0

为什么要用正则表达式来做到这一点?在复杂的正则表达式中,最好在应用程序的某些方法中封装这样的逻辑(检查有效性)。 – 2012-07-24 19:03:37

+0

由于记事本++比我的java代码更快,我更喜欢这个! – Jones 2012-07-24 19:10:25

回答

2

试试这个:

\b(?:(?: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]?)\b:\d{2,5} 

'

692.248.222.879:43780 
692.83.47.579:43780 
192.168.1.1:27052 

作品与最后一个唯一

+0

它确实有效。但是既然我已经有了这个大的选择,那么这个结果还有其他更短的正则表达式吗? – Jones 2012-07-24 19:18:51

+0

@ William.Ebe,我不这么认为。即使看起来很简单,你也必须进行很多测试。所以 - 最好的想法是使用一些专门的工具,这是经过测试并为此目的而制定的 - 就像** minitech **在他的回答中提到的那样。 – dantuch 2012-07-24 19:34:33

1

要使用正则表达式验证数字范围,您必须提供所有可能的组合,这就是为什么通常最好使用内置工具(如.NET的IPAddress.TryParse)的原因。但无论如何...

((?:1?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:1?\d{1,2}|2[0-4]\d|25[0-5]):\d{2,5} 
+0

感谢.Net库参考;上面的代码不能完全分析。它将692.248.222.879:43780选为** 92.248.222.879:43780 **。无论如何,再次感谢! – Jones 2012-07-24 19:16:23

+0

@ William.Ebe:我正在尝试它,但它不......但无论如何,只需在前面添加一个'(?<!\ d)'并在前面添加一个'(?!\ d)'最终使其不匹配其他数字中的任何内容。 – Ryan 2012-07-24 19:24:51

0
"^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$:\d{2,5}"; 

Proof

+0

'$:\ d {2,5}'不能很好地工作...... – Ryan 2012-07-24 19:23:42

-2

此正则表达式验证主机名和端口号。此外,它支持任何端口分隔符:

/((?:(?:1?\d{2}|2[0-4]\d|25[0-5]|\d{1,2})\.){3}(?:1?\d{2}|2[0-4]\d|25[0-5]|\d{1,2})|(?:[a-zA-Z]\.|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9]\.)+(?:XN--VERMGENSBERATUNG-PWB|XN--VERMGENSBERATER-CTB|XN--CLCHC0EA0B2G2A9GCD|XN--MGBERP4A5D4AR|XN--XKC2DL3A5EE0H|XN--XKC2AL3HYE2A|SANDVIKCOROMANT|XN--I1B6B1A6A2E|XN--KCRX77D1X4A|XN--LGBBAT1AD8J|XN--MGBA3A4F16A|XN--MGBC0A9AZCG|XN--NQV7FS00EMA|CANCERRESEARCH|XN--6QQ986B3XL|XN--B4W605FERD|XN--FIQ228C5HS|XN--MGBAAM7A8H|XN--MGBAYH7GPA|XN--MGBBH1A71E|XN--MGBX4CD0AB|INTERNATIONAL|SPREADBETTING|XN--FPCRJ9C3D|XN--FZC2C9E2C|XN--YFRO4I67O|XN--YGBI2AMMX|CONSTRUCTION|SCHOLARSHIPS|VERSICHERUNG|XN--3E0B707E|XN--80ADXHKS|XN--80ASEHDB|XN--MGB9AWBF|XN--MGBAB2BD|XN--MGBPL2FH|XN--MK1BU44C|XN--NGBC5AZD|XN--OGBPF8FL|XN--QCKA1PMC|ACCOUNTANTS|BARCLAYCARD|BLACKFRIDAY|BRIDGESTONE|CONTRACTORS|ENGINEERING|ENTERPRISES|INVESTMENTS|MOTORCYCLES|PHOTOGRAPHY|PRODUCTIONS|WILLIAMHILL|XN--11B4C3D|XN--1QQW23A|XN--3BST00M|XN--3DS443G|XN--42C2D9A|XN--45BRJ9C|XN--55QW42G|XN--6FRZ82G|XN--80AO21A|XN--CZR694B|XN--D1ACJ3B|XN--EFVY88H|XN--ESTV75G|XN--FJQ720A|XN--FLW351E|XN--GECRJ9C|XN--H2BRJ9C|XN--HXT814E|XN--IMR513N|XN--J6W193G|XN--KPRW13D|XN--KPRY57D|XN--NYQY26A|XN--PGBS0DH|XN--Q9JYB4C|XN--RHQV96G|XN--S9BRJ9C|XN--SES554G|XN--T60B56A|XN--VUQ861B|XN--XHQ521B|XN--ZFR164B|ACCOUNTANT|APARTMENTS|ASSOCIATES|BNPPARIBAS|CONSULTING|CREDITCARD|CUISINELLA|EUROVISION|FOUNDATION|HEALTHCARE|IMMOBILIEN|INDUSTRIES|MANAGEMENT|PROPERTIES|PROTECTION|REPUBLICAN|RESTAURANT|TATAMOTORS|TECHNOLOGY|TELEFONICA|UNIVERSITY|VISTAPRINT|VLAANDEREN|XN--30RR7Y|XN--3PXU8K|XN--45Q11C|XN--4GBRIM|XN--55QX5D|XN--80ASWG|XN--90A3AC|XN--9DBQ2A|XN--9ET52U|XN--C2BR7G|XN--CG4BKI|XN--CZRS0T|XN--CZRU2D|XN--FIQ64B|XN--FIQS8S|XN--FIQZ9S|XN--IO0A7I|XN--KPUT3I|XN--MXTQ1M|XN--O3CW4H|XN--PSSY2U|XN--UNUP4Y|XN--WGBH1C|XN--WGBL6A|XN--Y9A3AQ|ACCENTURE|ALLFINANZ|AMSTERDAM|AQUARELLE|BARCELONA|BLOOMBERG|CHRISTMAS|COMMUNITY|DIRECTORY|EDUCATION|EQUIPMENT|FINANCIAL|FURNITURE|GOLDPOINT|HOMEDEPOT|INSTITUTE|LANCASTER|MARKETING|MELBOURNE|MICROSOFT|MONTBLANC|SOLUTIONS|STOCKHOLM|VACATIONS|XN--90AIS|XN--C1AVG|XN--D1ALF|XN--FHBEI|XN--J1AEF|XN--J1AMH|XN--L1ACC|XN--NQV7F|XN--P1ACF|XN--TCKWE|XN--VHQUV|YODOBASHI|AIRFORCE|ATTORNEY|BARCLAYS|BARGAINS|BOUTIQUE|BRADESCO|BRUSSELS|BUDAPEST|BUILDERS|BUSINESS|CAPETOWN|CATERING|CIPRIANI|CLEANING|CLOTHING|COMMBANK|COMPUTER|DELIVERY|DEMOCRAT|DIAMONDS|DISCOUNT|DOWNLOAD|ENGINEER|EVERBANK|EXCHANGE|FEEDBACK|FIRMDALE|FLSMIDTH|FOOTBALL|GRAPHICS|HOLDINGS|INFINITI|IPIRANGA|ISTANBUL|LIGHTING|MARRIOTT|MEMORIAL|MORTGAGE|MOVISTAR|PARTNERS|PHARMACY|PICTURES|PLUMBING|PROPERTY|REDSTONE|SAARLAND|SECURITY|SERVICES|SOFTWARE|STCGROUP|SUPPLIES|TRAINING|VENTURES|XN--NODE|XN--P1AI|YOKOHAMA|ABOGADO|ACADEMY|ANDROID|AUCTION|BAUHAUS|BENTLEY|BROTHER|CAPITAL|CARAVAN|CAREERS|CARTIER|CHANNEL|CLUBMED|COLLEGE|COLOGNE|COMPANY|COOKING|CORSICA|COUNTRY|COUPONS|COURSES|CRICKET|CRUISES|DENTIST|DIGITAL|DOMAINS|EXPOSED|EXPRESS|FASHION|FINANCE|FISHING|FITNESS|FLIGHTS|FLORIST|FLOWERS|FORSALE|FROGANS|GALLERY|GENTING|GUITARS|HAMBURG|HANGOUT|HITACHI|HOLIDAY|HOSTING|HOTELES|HOTMAIL|HYUNDAI|JEWELRY|KITCHEN|KOMATSU|LACAIXA|LASALLE|LATROBE|LECLERC|LIAISON|LIMITED|MARKETS|NETBANK|NETWORK|NEUSTAR|OKINAWA|ORGANIC|PANERAI|PHILIPS|REALTOR|RECIPES|RENTALS|REVIEWS|SAMSUNG|SANDVIK|SCHMIDT|SCHWARZ|SCIENCE|SHIKSHA|SHRIRAM|SINGLES|SPIEGEL|STARHUB|STATOIL|SUPPORT|SURGERY|SYSTEMS|TEMASEK|THEATER|THEATRE|TICKETS|TOSHIBA|TRADING|WEBSITE|WEDDING|WHOSWHO|WINDOWS|YAMAXUN|YOUTUBE|ZUERICH|ABBOTT|ACTIVE|AGENCY|AIRTEL|ALSACE|BAYERN|BERLIN|BHARTI|BROKER|CAMERA|CAREER|CASINO|CENTER|CHANEL|CHROME|CHURCH|CLAIMS|CLINIC|COFFEE|CONDOS|CREDIT|DATING|DATSUN|DEGREE|DENTAL|DESIGN|DIRECT|DOOSAN|DURBAN|EMERCK|ENERGY|ESTATE|EVENTS|EXPERT|FAMILY|FUTBOL|GARDEN|GIVING|GLOBAL|GOOGLE|GRATIS|HERMES|HIPHOP|HOCKEY|INSURE|JOBURG|JUEGOS|KAUFEN|KINDER|LAWYER|LONDON|LUXURY|MADRID|MAISON|MARKET|MONASH|MORMON|MOSCOW|MUSEUM|NAGOYA|NISSAN|OFFICE|ONLINE|ORACLE|ORANGE|OTSUKA|PHOTOS|PHYSIO|PIAGET|PICTET|QUEBEC|RACING|REALTY|REISEN|REPAIR|REPORT|REVIEW|RYUKYU|SAKURA|SANOFI|SCHOOL|SCHULE|SOCCER|SOCIAL|STUDIO|SUPPLY|SUZUKI|SWATCH|SYDNEY|TAIPEI|TATTOO|TENNIS|TIENDA|TOYOTA|TRAVEL|VIAJES|VILLAS|VIRGIN|VISION|VOTING|VOYAGE|WALTER|WEBCAM|XPERIA|YACHTS|YANDEX|ACTOR|ADULT|AMICA|ARCHI|AUDIO|AUTOS|AZURE|BIBLE|BINGO|BLACK|BOATS|BOOTS|BUILD|CANON|CARDS|CHEAP|CHLOE|CISCO|CITIC|CLICK|CLOUD|COACH|CODES|CROWN|CYMRU|DABUR|DANCE|DEALS|DELTA|DRIVE|EARTH|EMAIL|EPSON|FAITH|FINAL|FOREX|FORUM|GIFTS|GIVES|GLASS|GLOBO|GMAIL|GREEN|GRIPE|GROUP|GUIDE|HOMES|HONDA|HORSE|HOUSE|IINET|IRISH|JETZT|KOELN|KYOTO|LEASE|LEGAL|LEXUS|LINDE|LIXIL|LOANS|LOTTE|LOTTO|LUPIN|MANGO|MEDIA|MIAMI|MONEY|MOVIE|NADEX|NEXUS|NINJA|NOKIA|OMEGA|OSAKA|PARIS|PARTS|PARTY|PHOTO|PIZZA|PLACE|POKER|PRAXI|PRESS|REHAB|REISE|RICOH|ROCKS|RODEO|SENER|SEVEN|SHOES|SKYPE|SOLAR|SPACE|STADA|STUDY|STYLE|SUCKS|SWISS|TATAR|TIRES|TIROL|TODAY|TOKYO|TOOLS|TORAY|TOURS|TRADE|TRUST|VEGAS|VIDEO|VISTA|VODKA|WALES|WATCH|WORKS|WORLD|XEROX|AERO|ARMY|ARPA|ASIA|AUTO|BAND|BANK|BBVA|BEER|BEST|BIKE|BING|BLUE|BOND|BUZZ|CAFE|CAMP|CARE|CARS|CASA|CASH|CERN|CHAT|CITY|CLUB|COOL|COOP|CYOU|DATE|DCLK|DESI|DIET|DOCS|DOHA|DVAG|ERNI|FAGE|FAIL|FANS|FARM|FILM|FISH|FUND|GAME|GBIZ|GENT|GGEE|GIFT|GOLD|GOLF|GOOG|GUGE|GURU|HAUS|HELP|HERE|HOST|HSBC|ICBC|IMMO|INFO|ITAU|JAVA|JOBS|JPRS|KDDI|KIWI|KRED|LAND|LGBT|LIDL|LIFE|LIMO|LINK|LIVE|LOAN|LOVE|LTDA|LUXE|MAIF|MEET|MEME|MENU|MINI|MOBI|MODA|MTPC|NAME|NAVY|NEWS|NICO|PAGE|PICS|PINK|PLAY|PLUS|POHL|PORN|POST|PROD|PROF|QPON|REIT|RENT|REST|RICH|RSVP|RUHR|SALE|SARL|SAXO|SCOR|SCOT|SEAT|SEEK|SEXY|SHOW|SITE|SNCF|SOHU|SONY|SURF|TAXI|TEAM|TECH|TIPS|TOWN|TOYS|VIVA|VOTE|VOTO|WANG|WEIR|WIEN|WIKI|WINE|WORK|XBOX|YOGA|ZONE|AAA|ABB|ACO|ADS|AEG|AFL|AIG|APP|AXA|BAR|BBC|BCN|BET|BID|BIO|BIZ|BMS|BMW|BNL|BOM|BOO|BZH|CAB|CAL|CAR|CAT|CBA|CBN|CEB|CEO|CFA|CFD|COM|CRS|CSC|DAD|DAY|DEV|DNP|DOG|EAT|EDU|ESQ|EUS|FAN|FIT|FLY|FOO|FRL|FYI|GAL|GDN|GEA|GLE|GMO|GMX|GOO|GOP|GOV|HIV|HOW|IBM|ICE|ICU|IFM|ING|INK|INT|IST|IWC|JCB|JLC|JLL|KIA|KIM|KRD|LAT|LAW|LDS|LOL|LTD|MAN|MBA|MEN|MIL|MMA|MOE|MOI|MOM|MOV|MTN|MTR|NEC|NET|NEW|NGO|NHK|NRA|NRW|NTT|NYC|OBI|ONE|ONG|ONL|OOO|ORG|OVH|PET|PRO|PUB|RED|REN|RIO|RIP|RUN|SAP|SCA|SCB|SEW|SEX|SKI|SKY|SOY|SRL|STC|TAX|TEL|THD|TOP|TUI|UBS|UNO|UOL|VET|VIN|WED|WIN|WME|WTC|WTF|XIN|XXX|XYZ|ZIP|AC|AD|AE|AF|AG|AI|AL|AM|AO|AQ|AR|AS|AT|AU|AW|AX|AZ|BA|BB|BD|BE|BF|BG|BH|BI|BJ|BM|BN|BO|BR|BS|BT|BV|BW|BY|BZ|CA|CC|CD|CF|CG|CH|CI|CK|CL|CM|CN|CO|CR|CU|CV|CW|CX|CY|CZ|DE|DJ|DK|DM|DO|DZ|EC|EE|EG|ER|ES|ET|EU|FI|FJ|FK|FM|FO|FR|GA|GB|GD|GE|GF|GG|GH|GI|GL|GM|GN|GP|GQ|GR|GS|GT|GU|GW|GY|HK|HM|HN|HR|HT|HU|ID|IE|IL|IM|IN|IO|IQ|IR|IS|IT|JE|JM|JO|JP|KE|KG|KH|KI|KM|KN|KP|KR|KW|KY|KZ|LA|LB|LC|LI|LK|LR|LS|LT|LU|LV|LY|MA|MC|MD|ME|MG|MH|MK|ML|MM|MN|MO|MP|MQ|MR|MS|MT|MU|MV|MW|MX|MY|MZ|NA|NC|NE|NF|NG|NI|NL|NO|NP|NR|NU|NZ|OM|PA|PE|PF|PG|PH|PK|PL|PM|PN|PR|PS|PT|PW|PY|QA|RE|RO|RS|RU|RW|SA|SB|SC|SD|SE|SG|SH|SI|SJ|SK|SL|SM|SN|SO|SR|ST|SU|SV|SX|SY|SZ|TC|TD|TF|TG|TH|TJ|TK|TL|TM|TN|TO|TR|TT|TV|TW|TZ|UA|UG|UK|US|UY|UZ|VA|VC|VE|VG|VI|VN|VU|WF|WS|YE|YT|ZA|ZM|ZW))(?:[^0-9]+?)(\d{1,4}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])(?:[^0-9]|$)/i 
+0

其他正则表达式可以匹配类似“255.255.255.255:99999”的东西,并且不匹配任何**有效的主机名**(例如“example .COM:80" )。 – Azazar 2015-10-26 19:16:43