address通常带有逗号分隔符,可以使用简单的正则表达式进行分割。如
123 Main St, Los Angeles, CA, 90210
我们可以在这里应用正则表达式,并使用逗号分割。但在我的数据库地址存储没有逗号。如
A Better Property Management<br/> 6621 E PACIFIC COAST HWY<br/> STE 255<br/> LONG BEACH CA 90803-4241
我想在城市前面加逗号。像这样:
A Better Property Management<br/> 6621 E PACIFIC COAST HWY<br/> STE 255<br/> LONG BEACH ,CA 90803-4241
我想从末尾找到最后两个字母的单词,然后用正则表达式放逗号。但我也需要考虑到我们没有完整地址或丢失城市和pin码的情况。有没有办法做到这一点。我只找到了可以用逗号分开的解决方案,而不是相反。
我在想我们是否可以选择数字前的最后两个单词,比如[A-Za-z]{2}
(不知道这是否正确)。同时,如果我们可以检查只有当字符串以数字结尾时才会这样做。
我试着
(b(AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY|Alabama|Alaska|Arizona|Arkansas|California|Colorado|Connecticut|Delaware|District of Columbia|Florida|Georgia|Hawaii|Idaho|Illinois|Indiana|Iowa|Kansas|Kentucky|Louisiana|Maine|Maryland|Massachusetts|Michigan|Minnesota|Mississippi|Missouri|Montana|Nebraska|Nevada|New Hampshire|New Jersey|New Mexico|New York|North Carolina|North Dakota|Ohio|Oklahoma|Oregon|Pennsylvania|Rhode Island|South Carolina|South Dakota|Tennessee|Texas|Utah|Vermont|Virginia|Washington|West Virginia|Wisconsin|Wyoming)b)
https://regex101.com/r/75fqO6/1可以使用
[a-zA-Z]+s+d(?:[d-]*d)?$
替换为,$0
。参见regex演示。细节:
[a-zA-Z]+
-一个或多个字母s+
-一个或多个空白d
-一个数字(?:[d-]*d)?
-由0个或多个数字/连字符和一个数字组成的可选子字符串$
-字符串结束
替换中的$0
是对整个匹配值的反向引用,所有通过regex匹配的文本都被放回到找到它的地方,并使用前置逗号。