Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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,我在网上查阅了许多正则表达式,经过多次测试,它们都与此电子邮件不匹配: CAKyppebtX1Fe7t1bdZGABT1a9Pp4bp6zVnx=DA_69SwRpuBu4w@mail.gmail.com 我想做的是从一块文本中提取电子邮件,我得到的只是=符号后面的部分: str = 'Foo: <CAKyppebtX1Fe7t1bdZGABT1a9Pp4bp6zVnx=DA_69SwRpuBu4w@mail.gmail.com>' emails = str.scan(/\b[

我在网上查阅了许多正则表达式,经过多次测试,它们都与此电子邮件不匹配:

CAKyppebtX1Fe7t1bdZGABT1a9Pp4bp6zVnx=DA_69SwRpuBu4w@mail.gmail.com

我想做的是从一块文本中提取电子邮件,我得到的只是
=
符号后面的部分:

str    = 'Foo: <CAKyppebtX1Fe7t1bdZGABT1a9Pp4bp6zVnx=DA_69SwRpuBu4w@mail.gmail.com>'
emails = str.scan(/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i)

=> ['DA_69SwRpuBu4w@mail.gmail.com']
str='Foo:'
emails=str.scan(/\b[A-Z0-9.\%+-]+@[A-Z0-9.-]+\[A-Z]{2,4}\b/i)
=>['DA_69SwRpuBu4w@mail.gmail.com']

您只需将
=
添加到regexp:

 str    = 'Foo: <CAKyppebtX1Fe7t1bdZGABT1a9Pp4bp6zVnx=DA_69SwRpuBu4w@mail.gmail.com>'
 emails = str.scan(/\b[A-Z0-9._%+-=]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i)

 => ["CAKyppebtX1Fe7t1bdZGABT1a9Pp4bp6zVnx=DA_69SwRpuBu4w@mail.gmail.com"]
str='Foo:'
电子邮件=str.scan(/\b[A-Z0-9.\uz0%+-=]+@[A-Z0-9.-]+\[A-Z]{2,4}\b/i)
=>[“CAKyppebtX1Fe7t1bdZGABT1a9Pp4bp6zVnx=DA_69SwRpuBu4w@mail.gmail.com"]

是否将
=
包含在用于用户名的字符类中

str    = 'Foo: <CAKyppebtX1Fe7t1bdZGABT1a9Pp4bp6zVnx=DA_69SwRpuBu4w@mail.gmail.com>'
emails = str.scan(/\b[A-Z0-9._%+-=]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i)

=> ["CAKyppebtX1Fe7t1bdZGABT1a9Pp4bp6zVnx=DA_69SwRpuBu4w@mail.gmail.com"]
str='Foo:'
电子邮件=str.scan(/\b[A-Z0-9.\uz0%+-=]+@[A-Z0-9.-]+\[A-Z]{2,4}\b/i)
=>[“CAKyppebtX1Fe7t1bdZGABT1a9Pp4bp6zVnx=DA_69SwRpuBu4w@mail.gmail.com"]

您没有在这里的组中包括
=
签名
[A-Z0-9.%+-]
,只需将其添加到那里即可。