检查字符串是否具有特定格式

时间:2019-04-03 02:42:24

标签: python regex string

我想检查字符串是否符合我输入的格式,例如:

我要从字符串列表中提取具有以下格式的字符串:

***.***.*** 

其中*都是数字。

我搜索了正则表达式,但对它的理解不够充分。

3 个答案:

答案 0 :(得分:2)

这绝对是正则表达式的工作。该模式的简单正则表达式可能是

\d\d\d\.\d\d\d\.\d\d\d

“ \ d”代表任何数字,“ \”代表。是转义的转义字符(因为“。”是正则表达式中的特殊符号。)使用python re库可能会使用具有该模式的findall方法,

list_of_matches = re.findall("\d\d\d\.\d\d\d\.\d\d\d", my_string)

答案 1 :(得分:1)

我们可以尝试通过以下模式使用re.findall

\b\d{3}\.\d{3}\.\d{3}\b

示例代码:

input = "here some number 123.456.789 for testing"
matches = re.findall(r'\b\d{3}\.\d{3}\.\d{3}\b', input)
print(matches)

['123.456.789']

在这里使用re.findall是一个不错的选择,因为这还意味着您可以在输入字符串中捕获多个匹配项。

答案 2 :(得分:0)

这应该可以解决问题。正则表达式字符串为^[0-9]+\.[0-9]+\.[0-9]+$,我将每个数字精确地匹配3次,并检查是否为'。'。分隔符在中间。 ^和$表示字符串的开头和结尾

>>> import re
>>> re.match('^[0-9]{3}\.[0-9]{3}\.[0-9]{3}$','111.222.333')
<_sre.SRE_Match object at 0x10f98cb28>
>>> re.match('^[0-9]+\.[0-9]+\.[0-9]+$','a11.22.33b')
>>> re.match('^[0-9]+\.[0-9]+\.[0-9]+$','1a1.22.3b3')
>>> re.match('^[0-9]+\.[0-9]+\.[0-9]+$','11.2a2.33')