如何在Python中从字符串中获取最后一个单词

ilmyapht  于 2023-03-24  发布在  Python
关注(0)|答案(3)|浏览(167)

我有一个字符串,试图从字符串中获取最后一个单词,如AUTHORITY[“EPSG”,“6737”]

a = 'PROJCS["Korea",GEOGCS["K 2000",DATUM["Geocentric_datum",
SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],
AUTHORITY["EPSG","6737"]]]'
m1m5dgzv

m1m5dgzv1#

我们可以使用正则表达式来解决这个问题

import re

a = 'PROJCS["Korea",GEOGCS["K 2000",DATUM["Geocentric_datum",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6737"]]]'

matches = re.findall('[A-Z]+\["[A-Za-z]+","\d+"\]', a)

# prints the last match
print(matches[-1])

下面是正则表达式的分类:
[A-Z]+匹配所有大写的第一个单词。“AUTHORITY”
\[匹配左括号[是正则表达式中的特殊字符,因此我们必须确保使用\对其进行转义
"[A-Za-z]+"将匹配引号中的单词。
,匹配逗号
"\d+"匹配引号中的数字
\]匹配右括号

rryofs0p

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])

1hdlvixo

1hdlvixo3#

这取决于你认为在这种情况下是一个“词”?你是指提到的短语AUTHORITY[“EPSG”,“6737”]?你总是可以使用split函数,它在接受分隔符时返回一个字符串数组(本例中为“,”):splitString = someString.split(",")。这样你就可以在后面使用索引i来访问初始字符串的特定部分:word = splitString[i]。在您的例子中,只需取index = -2和-1(分别表示从END开始的第二个和第一个),并通过简单的字符串操作将它们组合起来:

splitString = someString.split(",")
output = splitString[-2] + "," + splitString[-1]
output.replace(']]]',']')

代码片段的最后一行删除了字符串末尾不必要的“]]”
但是:在你的例子中,可以清楚地看到,这是一些被解析成复杂数组形式的数据结构。我建议将该字符串解析成一个数据结构,然后你有一个清晰的方法来访问数据的特定部分。你从哪里得到它?你可以尝试使用一些python库将它解析成json对象。如果需要对字符串进行类似这样的进一步操作,这可能是最好的。如果你只需要一个简单的解决方案,上面的代码可以完成这项工作。

相关问题