如何从字符串中提取正则表达式

问题描述:

我有字符串列表,需要找到正则表达式后面跟这些字符串。例如,我有10个字符串,其中3个是电子邮件,2个是数字,5个是字母数字。我不想保留固定的正则列表,并保留匹配的字符串并告诉用户有关他们的数据。 至少如果我能找到它们后面的一般模式。 我正在寻找一些Java库。如何从字符串中提取正则表达式

+1

示例输入/输出预期请 –

所以....这取决于你在执行本什么语言,它可以很容易或有些几乎是不可能的。

要匹配的字符串,您通常只是做

/(\w)+/g which will eat all characters 

如果你想匹配的字母数字字符串(再次,打破空间),你可以做这样的事情

([a-zA-Z0-9])+ 

匹配的电子邮件是极其复杂的,但在HTML5实现的规则看起来是这样的(虽然它可能会漏掉一些国际字符,而不是100%准确,它是99%左右的准确)

/([a-zA-Z0-9.!#$%&'*+=?^_\`{|}~-][email protected][a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)/i 

如果您有更具体的事情要做,请随时发表评论。

+0

我希望在Java中使用的语言。问题是我不想指定大量的正则表达式,并让用户知道最可能的字符串正则表达式。如果我能找到任何需要字符串作为输入的库,并为该字符串提供了最具体的正则表达式。我可以理解,对于一个字符串,有很多正则表达式满足该字符串。但只要尝试一下,如果有一些图书馆存在可以解决我的目的。 – Shiva

+0

这是一个奇怪的用法....有正则表达式在线建设者,但从理论上来说,匹配任何字符串的最快捷方式总是将\ w \ W,也许一些\ d \ D \ s和\ S。要智能地构建正则表达式真的很困难。例如,字符串“abc123”将匹配正则表达式([ac] {0,3} \ d +),\ w + {0,3} \ d +,\ w +,abc123,。*(?=。* \ w)3等等等等。你如何构建一个正则表达式的想法是真正扎根于你需要捕获的东西,以及你的特定字符串的模式是什么,这通常是根据比正则表达式本身如何生成更多的字符串来决定的 –