我正在构建正则表达式以在我的文本中查找日期。我创建了日期名称,日期和特殊字符的列表。
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-bootstrap/0.32.1/react-bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<div id="container">
</div>
我也编译了它们,如下所示。
dict_month_name =['january','february','march','april','may','june','july','august','september','october','november','december']
dict_day =['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
dict_special_char = ['-', '/', '.', ',' ,'',' ']
现在,在我下面显示的正则表达式中,我想使用我之前创建的列表的不同变体。对于例如搜索日期,如2017年1月1日,正则表达式将是 -
month_name = re.compile('|'.join(dict_month_name))
day = re.compile('|'.join(dict_day))
special_char = re.compile('|'.join(dict_special_char))
但是,正则表达式不会返回任何输出。我需要使用正则表达式而不是日期时间模块来解决这个问题。有没有办法可以将我的列表包含在正则表达式中,如上所示?
答案 0 :(得分:1)
您可以通过以下方式组合正则表达式:
\b(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)[\-\/\.\,\ ]\s+(?:january|february|march|april|may|june|july|august|september|october|november|december)\s+[0-9]{4}\b
请参阅Python demo。
在这个例子中,正则表达式将是
re.I
您会看到模式现在是更大模式的一部分。 [re.escape(x) for x in dict_special_char]
支持不区分大小写的匹配。
另请注意,应使用class myClass():
@staticmethod
def all_object():
pass
myInstances = []
def __init__(self, myStr01, myStr02):
self.myStr01 = myStr01
self.myStr02 = myStr02
self.__class__.myInstances.append(self)
myObj01 = myClass("Foo", "Bar")
myObj02 = myClass("FooBar", "Baz")
转义特殊字符,以便与字面字符匹配。