Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Ruby正则表达式解析器_Ruby_Regex - Fatal编程技术网

Ruby正则表达式解析器

Ruby正则表达式解析器,ruby,regex,Ruby,Regex,有人能看一下下面的代码并告诉我这是否真的是解析“:”符号后文本的正确方法 此脚本解析文本文件中的电子邮件地址以清除垃圾邮件。文本:电子邮件地址 我正在努力使我的脚本更有效率。所以我所有的ruby/regex脚本看起来都一样,只是使用了不同的regex模式。我用ruby编写了它们,在这里和那里剪切了一个dpasting,因为我的大多数服务器上都有ruby,所以在任何地方运行任何脚本都比较容易 任何帮助都将不胜感激 如果您真的只想在第一个:之后输入文本,我不会使用正则表达式。我会用 如果您真的只想在

有人能看一下下面的代码并告诉我这是否真的是解析“:”符号后文本的正确方法

此脚本解析文本文件中的电子邮件地址以清除垃圾邮件。文本:电子邮件地址

我正在努力使我的脚本更有效率。所以我所有的ruby/regex脚本看起来都一样,只是使用了不同的regex模式。我用ruby编写了它们,在这里和那里剪切了一个dpasting,因为我的大多数服务器上都有ruby,所以在任何地方运行任何脚本都比较容易


任何帮助都将不胜感激

如果您真的只想在第一个
之后输入文本,我不会使用正则表达式。我会用


如果您真的只想在第一个
之后输入文本,我不会使用正则表达式。我会用


如果您知道冒号是电子邮件前面的左分隔符,而右分隔符是右分隔符,那么您可以使用

:(.+[^)])

作为正则表达式来提取中间的任何内容。不过,有一些非常具体的电子邮件匹配regexen,这可能更合适(当源文本不太“规则”时)

如果您知道冒号是电子邮件前面的左分隔符,并且在右侧有一个close paren,那么您可以使用

:(.+[^)])

作为正则表达式来提取中间的任何内容。不过,有一些非常具体的电子邮件匹配regexen,这可能更合适(当源文本不太“规则”时)

如果您只想要有效的电子邮件,我只会搜索一个捕获电子邮件的regexp:

email_regexp = /[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}/
puts YAML.dump(
  File.read(ARGV[0]).scan(email_regexp)
)

如果你只想要有效的电子邮件,我会搜索一个可以捕获电子邮件的regexp:

email_regexp = /[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}/
puts YAML.dump(
  File.read(ARGV[0]).scan(email_regexp)
)

TLD的长度可能远远超过6个字符,请参阅:此正则表达式产生大量假阴性,请参阅:TLD的长度可能远远超过6个字符,请参阅:此正则表达式产生大量假阴性,请参阅: