Проблема с вашим выражением regex
заключается в том, что вы соответствуете первому столбцу aaa@foo.com
вместе с ,
или ,(space)
или (end of the line)
. Затем вы проверяете, повторяется ли оно 0
или более раз, используя *
.
Однако здесь вы не можете использовать знак *
или +
. Вы хотите, чтобы он совпадал с 2
раз всегда . Таким образом, вы хотите исправить ваш regex
следующим образом:
^((([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))+(,|, |$)){2}$
Если вы не заметили, я удалил *
перед $
в конце и заменил это с {2}
. Это потому, что вы хотите 2 совпадения.
Тем не менее, я бы go со следующим regex
выражением:
(.+?)@(.+)\.(.+),[^\S\r\n]*(.+?)@(.+)\.(.+)
В любом случае, оба верните результаты, которые вы хотите, из следующего:
aaa@foo.com, bbb@bar.com
aaa@foo.com,bbb@bar.com
aaa@foo.com,
aaa@foo.com,
Они выделяют только следующее:
aaa@foo.com, bbb@bar.com
aaa@foo.com,bbb@bar.com
В случае, если вы захотите попробовать sh самостоятельно , нажмите здесь и измените regex
между ними. Они оба работают.