我正在通过将正则表达式与 2-5 位数字或一些邮政信箱内容匹配,然后是 10-100 个字符,然后是州和邮政编码来查找美国地址(粗略搜索)。
我试图将中间匹配限制为包括换行在内的任何字符的 10 到 100 个,同时特别允许其中的空白字符数量不受限制(所有其他字符的总数限制为 100 个)。例如,以下字符串将匹配:
"12345 First St. [hundreds of white space characters]
Some Town, [hundreds of white space characters]
CA 92107"
这个正则表达式与我的模式匹配,除了无限的空格。
$regex = '/(.|\n|\r\n){10,100}/';
我试过用这个模式来匹配无限的空白,但它不起作用:
$regex = '/(.|\s+|\n|\r\n){10,100}/';
对于上下文,我用来查找地址的完整正则表达式如下:
$regex = "/\b(\d{2,5}|po|p\.o\.|post office)(.|\n|\r\n){10,100}(AK|Alaska|AL|Alabama|AR|Arkansas|AZ|Arizona|CA|California|CO|Colorado|CT|Connecticut|DC|Washington\sDC|Washington\D\.C\.|DE|Delaware|FL|Florida|GA|Georgia|GU|Guam|HI|Hawaii|IA|Iowa|ID|Idaho|IL|Illinois|IN|Indiana|KS|Kansas|KY|Kentucky|LA|Louisiana|MA|Massachusetts|MD|Maryland|ME|Maine|MI|Michigan|MN|Minnesota|MO|Missouri|MS|Mississippi|MT|Montana|NC|North\sCarolina|ND|North\sDakota|NE|New\sEngland|NH|New\sHampshire|NJ|New\sJersey|NM|New\sMexico|NV|Nevada|NY|New\sYork|OH|Ohio|OK|Oklahoma|OR|Oregon|PA|Pennsylvania|RI|Rhode\sIsland|SC|South\sCarolina|SD|South\sDakota|TN|Tennessee|TX|Texas|UT|Utah|VA|Virginia|VI|Virgin\sIslands|VT|Vermont|WA|Washington|WI|Wisconsin|WV|West\sVirginia|WY|Wyoming)(\s|\n|\r\n|\ \;){1,3}\d{5}/i"