gpt4 book ai didi

python - 正则表达式 Python 匹配大量字符串

转载 作者:太空狗 更新时间:2023-10-29 18:20:39 30 4
gpt4 key购买 nike

我有一个很大的字符串列表,其中包含空格(例如“纽约”、“美国”、“北卡罗来纳”、“阿拉伯联合酋长国”、“大不列颠及北爱尔兰联合王国”.. .以及大约 5000 多个这样的字符串)。

我有一个很大的文本,其中可能包含这些字符串中的任何一个(例如“我在去北卡罗来纳州的路上去了纽约,最终将去阿拉伯联合酋长国。”)

有效使用正则表达式检测文本中是否存在这些字符串的最佳方法是什么?

或者也许我应该换个思路,从文本中提取二元语法,然后查看列表中的哪些字符串与这些二元语法相匹配?


编辑:

在与 VoronoiPotato 进行了一次有趣的讨论之后,我开始认为最好对大型字符串列表的所有项的标记进行索引,并且我设法通过以下函数做到了这一点:

def indexing_list(li):
index_dict={}
for i in rl(li):
words=li[i].split()
for j in rl(words):
index=complex(i,j)
word=words[j].lower()
try:
index_dict[word].append(index)
except:
index_dict[word]=[index]
return index_dict

并尝试使用此列表:

[u'United Kingdom of Great Britain and Northern Ireland', u'Democratic People\u2019s Republic of Korea', u'Democratic Republic of the Congo', u'Lao People\u2019s Democratic Republic', u'Saint Vincent and the Grenadines', u'United Republic of Tanzania', u'Iran (Islamic Republic of)', u'Central African Republic', u'Islamic Republic of Iran', u'United States of America', u'Bosnia and Herzegovina', u'Libyan Arab Jamahiriya', u'Saint Kitts and Nevis', u'Sao Tome and Principe', u'Syrian Arab Republic', u'United Arab Emirates', u'Antigua and Barbuda', u'Trinidad and Tobago', u'Dominican Republic', u'Russian Federation', u'Brunei Darussalam', u'Equatorial Guinea', u'Republic of Korea', u'Marshall Islands', u'Papua New Guinea', u'Solomon Islands', u'ComodRivadavia', u'Port-au-Prince', u'DumontDUrville', u'Czech Republic', u'United Kingdom', u'Dar es Salaam', u'Cambridge Bay', u'Coral Harbour', u'Port of Spain', u'Santo Domingo', u'St Barthelemy', u'Swift Current', u'Ujung Pandang', u'Yekaterinburg', u'South Georgia', u'C\xf4te d\u2019Ivoire', u"Cote d'Ivoire", u'Guinea-Bissau', u'Liechtenstein', u'United States', u'Johannesburg', u'Buenos Aires', u'Rio Gallegos', u'Blanc-Sablon', u'Campo Grande', u'Danmarkshavn', u'Dawson Creek', u'Indianapolis', u'North Dakota', u'Rankin Inlet', u'Scoresbysund', u'Longyearbyen', u'Kuala Lumpur', u'Antananarivo', u'Port Moresby', u'Burkina Faso', u'Saudi Arabia', u'Sierra Leone', u'South Africa', u'Turkmenistan', u'Addis Ababa', u'Brazzaville', u'Ouagadougou', u'El Salvador', u'Los Angeles', u'Mexico City', u'Pangnirtung', u'Porto Velho', u'Puerto Rico', u'Rainy River', u'Tegucigalpa', u'Thunder Bay', u'Yellowknife', u'Ho Chi Minh', u'Krasnoyarsk', u'Novosibirsk', u'Ulaanbaatar', u'Vladivostok', u'Broken Hill', u'Isle of Man', u'Kaliningrad', u'Guadalcanal', u'Afghanistan', u'Cock Island', u'El Salvador', u'Netherlands', u'New Zealand', u'Philippines', u'Saint Lucia', u'Switzerland', u'Timor-Leste', u'Casablanca', u'Libreville', u'Lubumbashi', u'Nouakchott', u'Porto-Novo', u'Costa Rica', u'Fort Wayne', u'Grand Turk', u'Guadeloupe', u'Hermosillo', u'Petersburg', u'Louisville', u'Monticello', u'Martinique', u'Montevideo', u'Montserrat', u'Paramaribo', u'Porto Acre', u'Rio Branco', u'St Vincent', u'Whitehorse', u'Antarctica', u'South Pole', u'Choibalsan', u'Phnom Penh', u'Ulan Bator', u'Cape Verde', u'Queensland', u'Yancowinna', u'Bratislava', u'Copenhagen', u'Luxembourg', u'San Marino', u'Simferopol', u'Zaporozhye', u'Kiritimati', u'Yugoslavia', u'Azerbaijan', u'Bangladesh', u'Cape Verde', u'Costa Rica', u'Kazakhstan', u'Kyrgyzstan', u'Luxembourg', u'Madagascar', u'Mauritania', u'Micronesia', u'Montenegro', u'Mozambique', u'San Marino', u'Seychelles', u'Tajikistan', u'Uzbekistan', u'Bujumbura', u'Mogadishu', u'Anchorage', u'Araguaina', u'Catamarca', u'Boa Vista', u'Chihuahua', u'Fortaleza', u'Glace Bay', u'Goose Bay', u'Guatemala', u'Guayaquil', u'Tell City', u'Vincennes', u'Menominee', u'Monterrey', u'New Salem', u'Sao Paulo', u'St Thomas', u'Vancouver', u'Ashkhabad', u'Chongqing', u'Chungking', u'Hong Kong', u'Jerusalem', u'Kamchatka', u'Pontianak', u'Pyongyang', u'Qyzylorda', u'Samarkand', u'Singapore', u'Vientiane', u'Jan Mayen', u'Reykjavik', u'St Helena', u'Australia', u'Lord Howe', u'Melbourne', u'Greenwich', u'Amsterdam', u'Bucharest', u'Gibraltar', u'Ljubljana', u'Mariehamn', u'Podgorica', u'Stockholm', u'Volgograd', u'Christmas', u'Kerguelen', u'Mauritius', u'Enderbury', u'Galapagos', u'Kwajalein', u'Marquesas', u'Pago Pago', u'Rarotonga', u'Tongatapu', u'Argentina', u'Australia', u'Guatemala', u'Indonesia', u'Lithuania', u'Mauritius', u'Nicaragua', u'Singapore', u'Sri Lanka', u'Swaziland', u'Macedonia', u'Venezuela', u'Blantyre', u'Djibouti', u'El Aaiun', u'Freetown', u'Gaborone', u'Khartoum', u'Kinshasa', u'Monrovia', u'Ndjamena', u'Sao Tome', u'Timbuktu', u'Windhoek', u'Anguilla', u'La Rioja', u'San Juan', u'San Luis', u'Asuncion', u'Atikokan', u'Barbados', u'Dominica', u'Edmonton', u'Eirunepe', u'Ensenada', u'Kentucky', u'Mazatlan', u'Miquelon', u'Montreal', u'New York', u'Resolute', u'Santiago', u'Shiprock', u'St Johns', u'St Kitts', u'St Lucia', u'Winnipeg', u'Ashgabat', u'Calcutta', u'Damascus', u'Dushanbe', u'Istanbul', u'Jayapura', u'Katmandu', u'Makassar', u'Sakhalin', u'Shanghai', u'Tashkent', u'Tel Aviv', u'Atlantic', u'Adelaide', u'Brisbane', u'Canberra', u'Lindeman', u'Tasmania', u'Victoria', u'Belgrade', u'Brussels', u'Budapest', u'Chisinau', u'Guernsey', u'Helsinki', u'Sarajevo', u'Tiraspol', u'Uzhgorod', u'Auckland', u'Funafuti', u'Honolulu', u'Johnston', u'Pitcairn', u'Barbados', u'Botswana', u'Bulgaria', u'Cambodia', u'Cameroon', u'Colombia', u'Djibouti', u'Dominica', u'Ethiopia', u'Holy See', u'Honduras', u'Kiribati', u'Malaysia', u'Maldives', u'Mongolia', u'Pakistan', u'Paraguay', u'Portugal', u'Slovakia', u'Slovenia', u'Suriname', u'Thailand', u'Tanzania', u'Viet Nam', u'Zimbabwe', u'Anguilla', u'Abidjan', u'Algiers', u'Conakry', u'Kampala', u'Mbabane', u'Nairobi', u'Tripoli', u'America', u'Antigua', u'Cordoba', u'Mendoza', u'Tucuman', u'Ushuaia', u'Caracas', u'Cayenne', u'Chicago', u'Curacao', u'Detroit', u'Godthab', u'Grenada', u'Halifax', u'Indiana', u'Marengo', u'Winamac', u'Iqaluit', u'Managua', u'Marigot', u'Moncton', u'Nipigon', u'Noronha', u'Phoenix', u'Rosario', u'Tijuana', u'Toronto', u'Tortola', u'Yakutat', u'McMurdo', u'Rothera', u'Baghdad', u'Bahrain', u'Bangkok', u'Bishkek', u'Colombo', u'Irkutsk', u'Jakarta', u'Karachi', u'Kashgar', u'Kolkata', u'Kuching', u'Magadan', u'Nicosia', u'Rangoon', u'Tbilisi', u'Thimphu', u'Yakutsk', u'Yerevan', u'Bermuda', u'Madeira', u'Stanley', u'Andorra', u'Belfast', u'Tallinn', u'Vatican', u'Vilnius', u'Mayotte', u'Reunion', u'Chatham', u'Fakaofo', u'Gambier', u'Norfolk', u'Albania', u'Algeria', u'Armenia', u'Austria', u'Bahamas', u'Bahrain', u'Belarus', u'Belgium', u'Bolivia', u'Burundi', u'Comoros', u'Croatia', u'Denmark', u'Ecuador', u'Eritrea', u'Estonia', u'Finland', u'Georgia', u'Germany', u'Grenada', u'Hungary', u'Iceland', u'Ireland', u'Jamaica', u'Lebanon', u'Lesotho', u'Liberia', u'Morocco', u'Myanmar', u'Namibia', u'Nigeria', u'Moldova', u'Romania', u'Senegal', u'Somalia', u'Tunisia', u'Ukraine', u'Uruguay', u'Vanuatu', u'Asmara', u'Asmera', u'Bamako', u'Bangui', u'Banjul', u'Bissau', u'Douala', u'Harare', u'Kigali', u'Luanda', u'Lusaka', u'Malabo', u'Maputo', u'Maseru', u'Niamey', u'Belize', u'Bogota', u'Cancun', u'Cayman', u'Cuiaba', u'Dawson', u'Denver', u'Havana', u'Inuvik', u'Juneau', u'La Paz', u'Maceio', u'Manaus', u'Merida', u'Nassau', u'Recife', u'Regina', u'Virgin', u'Mawson', u'Palmer', u'Vostok', u'Arctic', u'Almaty', u'Anadyr', u'Aqtobe', u'Beirut', u'Brunei', u'Harbin', u'Kuwait', u'Manila', u'Muscat', u'Riyadh', u'Saigon', u'Taipei', u'Tehran', u'Thimbu', u'Urumqi', u'Azores', u'Canary', u'Faeroe', u'Currie', u'Darwin', u'Hobart', u'Sydney', u'Europe', u'Athens', u'Berlin', u'Dublin', u'Jersey', u'Lisbon', u'London', u'Madrid', u'Geneva', u'Monaco', u'Moscow', u'Prague', u'Samara', u'Skopje', u'Tirane', u'Vienna', u'Warsaw', u'Zagreb', u'Zurich', u'Chagos', u'Comoro', u'Easter', u'Kosrae', u'Majuro', u'Midway', u'Noumea', u'Ponape', u'Saipan', u'Tahiti', u'Tarawa', u'Wallis', u'Andora', u'Angola', u'Belize', u'Bhutan', u'Brazil', u'Canada', u'Cyprus', u'France', u'Gambia', u'Greece', u'Guinea', u'Guyana', u'Israel', u'Jordan', u'Kuwait', u'Latvia', u'Malawi', u'Mexico', u'Monaco', u'Norway', u'Panama', u'Poland', u'Rwanda', u'Serbia', u'Sweden', u'Turkey', u'Tuvalu', u'Uganda', u'Zambia', u'Accra', u'Cairo', u'Ceuta', u'Dakar', u'Lagos', u'Tunis', u'Jujuy', u'Aruba', u'Bahia', u'Belem', u'Boise', u'Vevay', u'Thule', u'Casey', u'Davis', u'Syowa', u'Amman', u'Aqtau', u'Dacca', u'Dhaka', u'Dubai', u'Kabul', u'Macao', u'Macau', u'Qatar', u'Seoul', u'Tokyo', u'Faroe', u'Eucla', u'Perth', u'Malta', u'Minsk', u'Paris', u'Sofia', u'Vaduz', u'Cocos', u'Efate', u'Nauru', u'Palau', u'Samoa', u'Benin', u'Chile', u'China', u'Congo', u'Egypt', u'Gabon', u'Ghana', u'Haiti', u'India', u'Italy', u'Japan', u'Kenya', u'Libya', u'Malta', u'Nauru', u'Nepal', u'Niger', u'Palau', u'Qatar', u'Samoa', u'Spain', u'Sudan', u'Syria', u'Tonga', u'Yemen', u'Lome', u'Adak', u'Atka', u'Nuuk', u'Knox', u'Lima', u'Nome', u'Asia', u'Aden', u'Baku', u'Dili', u'Gaza', u'Hovd', u'Omsk', u'Oral', u'Zulu', u'Kiev', u'Oslo', u'Bonn', u'Riga', u'Rome', u'Mahe', u'Apia', u'Fiji', u'Guam', u'Niue', u'Truk', u'Wake', u'Chad', u'Cuba', u'Fiji', u'Iran', u'Iraq', u'Mali', u'Oman', u'Peru', u'Togo', u'GMT', u'Yap']

然后我开始分析我的文本:

text='I went to New York and New Orleans and London and United States, Canada, and Egypt, Saudi Arabia'
text_words=text.split()

并尝试分别研究每个词:

for i in rl(text_words):
tw=text_words[i].lower()
print i
print tw
print index_dict.get(tw)

这些方法看起来很快,但我不确定如何更进一步

最佳答案

whitespaces_list=['New York','United States', 'United Arab Emirates']
large_text="I went to New York on my way to North Carolina, and eventually will be going to United Arab Emirates."
for i in whitespaces_list:
if i in large_text:
print i," Exist in Large text"

你在找这样的东西吗?

关于python - 正则表达式 Python 匹配大量字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11902865/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com