如何捕捉没有句点的句点之间的数字?
数字可以达到但小于3位数。 0< = i< 1000
示例:
答案 0 :(得分:5)
your_string.split(".")[1]
会给你号码
我的ipython shell中的示例: -
In [47]: your_string = "domain.3.bumblebee"
In [48]: your_string.split(".")[1]
Out[48]: '3'
您的用例并不需要正则表达式。
当然,如果你想返回整数,你需要做的只是投射它。
In [49]: int(your_string.split(".")[1])
Out[49]: 3
答案 1 :(得分:3)
正则表达式并不总是解决方案。关于使用正则表达式的引用。
有些人在面对问题时会想到 “我知道,我会使用正则表达式。”现在他们有两个问题。
regex
re
模块进行正则表达式。这是a link to the documentation。r"\.(\d{1,3})\."
。此匹配将找到一个字面句点,后跟一些1,2或3位数字,后跟另一个字面句点。(...)
。在这种情况下,在括号中捕获1,2或3位数的匹配。这是a link to some regex examples。>>> import re
>>>
>>> subject = """
... domain.3.bumblebee
... domain.56.mashabee
... domain.898.barista
... """
>>>
>>> matches = re.finditer(r"\.(\d{1,3})\.",subject)
>>> results = [int(match.group(1)) for match in matches]
>>>
>>> results
[3, 56, 898]
答案 2 :(得分:0)
尝试这样做:
>>> import re
>>> text = 'domain.56.mashabee'
>>> mystr = re.compile(r'^\w+\.(\d{1,3})\.')
>>> print mystr.search(str(text)).groups()[0]
56