无法扩展正则表达式以在Python中找到类似的模式
我正在尝试匹配(dd/yy-dd/yy)或(0d/yyy-0d/yyy)的模式。文本中类似模式的任何可能组合 我的文字是:无法扩展正则表达式以在Python中找到类似的模式,python,regex,Python,Regex,我正在尝试匹配(dd/yy-dd/yy)或(0d/yyy-0d/yyy)的模式。文本中类似模式的任何可能组合 我的文字是: text = ''' 09/14 - 18/18 some text 09/13 – 04/14 ''' 我的模式是: r"b([\d]{1,2}[\s/-]+[\d]{2,4}[-:\s.]+\d{1,2}[\s/-]+[\d]{2,4}[\s/-]+)" 它成功地匹配了09/14-18/18。但与文本中的09/13–04/14不匹配。 我的另一个疑问是,如果我
text = ''' 09/14 - 18/18 some text 09/13 – 04/14 '''
我的模式是:
r"b([\d]{1,2}[\s/-]+[\d]{2,4}[-:\s.]+\d{1,2}[\s/-]+[\d]{2,4}[\s/-]+)"
它成功地匹配了09/14-18/18。但与文本中的09/13–04/14不匹配。
我的另一个疑问是,如果我想检查“09/14-”后面是否跟有“单词(列表中的任何单词)”或类似“dd/yy或dd/yyy”的模式,我应该怎么做。我的观点是,如果它符合任何一个检查,我必须选择“09/14”。即,如果匹配,则为“09/14-word”,如果匹配,则为“09/14-dd/yyyy”
它成功地匹配了09/14-18/18。但与文本中的09/13–04/14不匹配
因为-
和-
是不同的字符
\b([\d]{1,2}[\s/-]+[\d]{2,4}[-:–\s.]+\d{1,2}[\s/-]+[\d]{2,4}[\s/-]+)
如果不想捕获匹配后的空格,请使用此选项
\b([\d]{1,2}[\s/-]+[\d]{2,4}[-:–\s.]+\d{1,2}[\s/-]+[\d]{2,4})\b
如果我想检查说“09/14-”后是否跟有“单词(列表中的任何单词)”或类似“dd/yy或dd/yyy”的模式,我应该怎么做
起始
b
从何而来?b用于边界签入@AvinashRaj@Avinash Raj-你能告诉我两者之间的区别吗?我如何区分它们之间的区别。请看,第一个连字符比第二个小。所以不一样了。哈哈…谢谢你。我会核对你的答案。给我点时间。
\b[\d]{1,2}[\s/-]+[\d]{2,4}[-:–\s.]+(?:\d{1,2}[\s/-]+[\d]{2,4}|\w)
>>> text = ''' 09/14 - 18/18 some text 09/13 – 04/14 '''
>>> re.findall(r'\b([\d]{1,2}[\s/-]+[\d]{2,4}[-:–\s.]+\d{1,2}[\s/-]+[\d]{2,4})\b', text)
['09/14 - 18/18', '09/13 – 04/14']