我是编程新手,需要一些关于正则表达式的帮助。
我有一个这样的字符串:xxxx.yyyy.zzzzz.mystring
上面的字符串需要的是"mystring"
,所以我正在寻找一个正则表达式,它给出了最后.
个字符后的字符串以及它之前的字符串。
答案 0 :(得分:2)
你可以尝试下面的代码来获取最后一个点之后的字符串。
>>> import re
>>> s = "xxxx.yyyy.zzzzz.mystring"
>>> m = re.search(r'(?<=\.)[^.]*$', s)
>>> m
<_sre.SRE_Match object at 0x7f9538d62370>
>>> m.group()
'mystring'
>>> s.split('.')[-1]
'mystring'
获取最后一个点之前存在的完整字符串
>>> m = re.search(r'^.*(?=\.)', s)
>>> m.group()
'xxxx.yyyy.zzzzz'
要在两个单独的组中获取第一部分(最后一个点之前的部分)和第二部分(最后一个点之后的部分),
>>> m = re.search(r'^(.*)\.(.*)$', s)
>>> m.group(1)
'xxxx.yyyy.zzzzz'
>>> m.group(2)
'mystring'
模式说明:
(?<=\.)
正向后视断言,角色进行匹配必须是一个点。[^.]*
匹配任何不是零点或更多次的字符。$
断言我们到底。 li>
答案 1 :(得分:1)
你也可以在没有正则表达式的情况下解决这个问题
print "xxxx.yyyy.zzzzz.mystring".split('.')[-1]
答案 2 :(得分:0)
答案 3 :(得分:0)
你实际上并不需要正则表达式。您只需使用split
。
>>> s = "xxxx.yyyy.zzzzz.mystring"
>>> s.split('.')[-1]
mystring
答案 4 :(得分:0)
没有正则表达式的一个解决方案
str = "xxxx.yyyy.zzzzz.mystring"
spl = str.split(".")
print spl[len(spl) - 1]