我正在尝试为数据丢失防护策略构建一个正则表达式,我们需要匹配长格式的出生日期,同时避免转发的已发送框。
这是我到目前为止所做的,但它并没有按照我希望的方式运作。我对正则表达式相对较新。请原谅任何不良形式。
(?i)(?!Sent:)\b(dob|date of birth|birth\s?date|birthday|born|d\.o\.b)\b\D{0,500}\b(jan|january|feb|february|mar|march|apr|april|may|jun|june|jul|july|aug|august|sep|sept|september|oct|october|nov|november|dec|december)\b\D{0,5}\b(\d{1,2})\D{0,20}(\d{2,4})\b
想法是IF Sent:' is not present AND (dob|date of birth|birth\s?date|birthday|born|d\.o\.b)
,然后在所述单词匹配的500个字符内寻找上述格式。
例如: 如果发送电子邮件时带有 -
Date of Birth
From:
Sent: Tuesday, September 26, 2017 9:19 AM
To: ''
Subject: FW: Routing Number Test
- 我希望正则表达式与Sent:
是否可以匹配使用双重条件?我是否正在努力完成正则表达式不适合的事情?
感谢任何帮助。
谢谢!
答案 0 :(得分:0)
我把发送到dob等之后,以便当他们聚在一起时发送和日期将被忽略。
(?i)\b(dob|date of birth|birth\s?date|birthday|born|d.o.b)\b(?:(?!Sent:)\D){0,500}\b(jan|january|feb|february|mar|march|apr|april|may|jun|june|jul|july|aug|august|sep|sept|september|oct|october|nov|november|dec|december)\b\D{0,5}\b(\d{1,2})\D{0,20}(\d{2,4})\b
找到正则表达式演示here。
只有改变如下:
(?:(?!Sent:)\D){0,500}
- 仅当未跟sent:
虽然正则表达式可以提高效率,但我目前只解决了双重条件问题。