正则表达式+人工智能
Regex + artificial intelligence
如何编写从列表中获取字符串并根据列表每一行中的模式生成正则表达式的软件。
由于正则表达式是正则表达式,这意味着它们用于匹配明确定义的模式。如果您需要一种模糊匹配,则不需要正则表达式或对其无效。如果您需要 "find similar text" 算法,请忘记正则表达式并使用一种机器学习算法。 Google "machine learning algorithms".
顺便说一句,制作一个程序来生成匹配一组字符串的正则表达式并不难,但如果只是为了娱乐或学习目的而制作它会很有意义,我无法想象它还能是什么有用。
例如,如果某些内容 "looks like e-mail address",您可以得到一个表达式匹配,但您无法真正判断它是否确实是一个电子邮件地址,因为要确定您需要应用一组严格的规则, 无法根据比所有现有电子邮件帐户的实际数量小得多的真实电子邮件地址样本自动确定的规则。
如果我为了好玩而做那样的事情,我会首先 "extract" 长度规则。不比最短的短,不比最长的长。然后将字符集限制为仅存在于集合中,或扩展为完整的字母数字。不扩展特殊字符。它可能在某些情况下有效,但在其他情况下会惨遭失败。
如何编写从列表中获取字符串并根据列表每一行中的模式生成正则表达式的软件。
由于正则表达式是正则表达式,这意味着它们用于匹配明确定义的模式。如果您需要一种模糊匹配,则不需要正则表达式或对其无效。如果您需要 "find similar text" 算法,请忘记正则表达式并使用一种机器学习算法。 Google "machine learning algorithms".
顺便说一句,制作一个程序来生成匹配一组字符串的正则表达式并不难,但如果只是为了娱乐或学习目的而制作它会很有意义,我无法想象它还能是什么有用。
例如,如果某些内容 "looks like e-mail address",您可以得到一个表达式匹配,但您无法真正判断它是否确实是一个电子邮件地址,因为要确定您需要应用一组严格的规则, 无法根据比所有现有电子邮件帐户的实际数量小得多的真实电子邮件地址样本自动确定的规则。
如果我为了好玩而做那样的事情,我会首先 "extract" 长度规则。不比最短的短,不比最长的长。然后将字符集限制为仅存在于集合中,或扩展为完整的字母数字。不扩展特殊字符。它可能在某些情况下有效,但在其他情况下会惨遭失败。