Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法扩展正则表达式以在Python中找到类似的模式_Python_Regex - Fatal编程技术网

无法扩展正则表达式以在Python中找到类似的模式

无法扩展正则表达式以在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不匹配。 我的另一个疑问是,如果我

我正在尝试匹配(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不匹配。 我的另一个疑问是,如果我想检查“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']