我有一个字符串,试图从字符串中获取最后一个单词,如AUTHORITY[“EPSG”,“6737”]
a = 'PROJCS["Korea",GEOGCS["K 2000",DATUM["Geocentric_datum",
SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],
AUTHORITY["EPSG","6737"]]]'
我有一个字符串,试图从字符串中获取最后一个单词,如AUTHORITY[“EPSG”,“6737”]
a = 'PROJCS["Korea",GEOGCS["K 2000",DATUM["Geocentric_datum",
SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],
AUTHORITY["EPSG","6737"]]]'
3条答案
按热度按时间m1m5dgzv1#
我们可以使用正则表达式来解决这个问题
下面是正则表达式的分类:
[A-Z]+
匹配所有大写的第一个单词。“AUTHORITY”\[
匹配左括号[
是正则表达式中的特殊字符,因此我们必须确保使用\
对其进行转义"[A-Za-z]+"
将匹配引号中的单词。,
匹配逗号"\d+"
匹配引号中的数字\]
匹配右括号rryofs0p2#
a = 'PROJCS[“Korea”,GEOGCS[“K 2000”,DATUM[“Geocentric_datum”,SPHEROID[“GRS 1980”,6378137,298.257222101,AUTHORITY [“EPSG”,“7019”]],AUTHORITY[“EPSG”,“6737”]]]'
拆分列表= a.拆分('],')您的单词=拆分列表[-1]
print(your_word[0:-2])
1hdlvixo3#
这取决于你认为在这种情况下是一个“词”?你是指提到的短语AUTHORITY[“EPSG”,“6737”]?你总是可以使用split函数,它在接受分隔符时返回一个字符串数组(本例中为“,”):
splitString = someString.split(",")
。这样你就可以在后面使用索引i
来访问初始字符串的特定部分:word = splitString[i]
。在您的例子中,只需取index = -2和-1(分别表示从END开始的第二个和第一个),并通过简单的字符串操作将它们组合起来:代码片段的最后一行删除了字符串末尾不必要的“]]”
但是:在你的例子中,可以清楚地看到,这是一些被解析成复杂数组形式的数据结构。我建议将该字符串解析成一个数据结构,然后你有一个清晰的方法来访问数据的特定部分。你从哪里得到它?你可以尝试使用一些python库将它解析成json对象。如果需要对字符串进行类似这样的进一步操作,这可能是最好的。如果你只需要一个简单的解决方案,上面的代码可以完成这项工作。