所以,我有一个字符串,我想删除它的电子邮件地址,如果有的话.
例如:
这是一些文字,它会继续这样,
直到有时电子邮件地址显示为asd@asd.com还有一些文字在这里和这里.
结果我想要这个.
这是一些文字,它会继续这样,
直到有时电子邮件地址出现[email_removed]还有一些文字在这里和这里.
cleanFromEmail(string)
{
newWordString =
space := a_space
Needle = @
wordArray := StrSplit(string, [" ", "`n"])
Loop % wordArray.MaxIndex()
{
thisWord := wordArray[A_Index]
IfInString, thisWord, %Needle%
{
newWordString = %newWordString%%space%(email_removed)%space%
}
else
{
newWordString = %newWordString%%space%%thisWord%%space%
;msgbox asd
}
}
return newWordString
}
Run Code Online (Sandbox Code Playgroud)
这个问题是我最终失去了所有换行符并且只获得了空格.如何在重新删除电子邮件地址之前重新构建字符串?
基于此答案... 使用正则表达式验证电子邮件地址
这导致我到这个网站... http://fightingforalostcause.net/misc/2006/compare-email-regex.php
我想将此正则表达式用于我的ASP.NET MVC应用程序的电子邮件验证:
/^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*+@(?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/iD
Run Code Online (Sandbox Code Playgroud)
不幸的是,我收到了这个错误
System.ArgumentException未被用户代码Message ="parsing \"/ ^ [-_ a-z0-9 \'+ $ ^&%=〜!?{}] ++(?:\.[-_ a-z0- 9 \'+ $ ^&%=〜!?{}] +)*+ @(?:(?![ - .])[ - a-z0-9.] +(?
有没有人曾经将它转换为可以被.NET的Regex类使用,或者是否有另一个.NET正则表达式类更适合PHP的preg_match功能?
我需要验证在qlineedit中输入的文本是否具有regexp的形式,我试图使用它:
void MainWindow::checkReg( QLineEdit& mail, const QCheckBox& skip, string type )
{
if(type == "mail")
{
if( skip.checkState() != 2)
{
QRegExp mailREX("\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b");
mailREX.setCaseSensitivity(Qt::CaseInsensitive);
mailREX.setPatternSyntax(QRegExp::Wildcard);
bool regMat = mailREX.exactMatch(mail.text());
if(regMat == false)
{
QMessageBox *message = new QMessageBox(this);
message->setWindowModality(Qt::NonModal);
message->setText("Inserte los datos en el formato correcto");
message->setStandardButtons(QMessageBox::Ok);
message->setWindowTitle("MainWindow");
message->setIcon(QMessageBox::Information);
message->exec();
this->ok = 0;
mail.clear();
}
else
this->ok = 1;
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是我输入的每封邮件都像me@me.com一样,出现错误信息.我也试过用
int regMat = mailREX.indexIn(mail.text());
Run Code Online (Sandbox Code Playgroud)
它没有用.
提前致谢
我有一个表单,我想要做的是在将电子邮件地址插入我的数据库之前验证它们.我已经阅读过多篇帖子,但没有一篇能解决我的问题.
这是我到目前为止的代码.
-(BOOL) validEmail:(NSString*) emailString {
NSString *regExPattern = @"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?";
NSRegularExpression *regEx = [[NSRegularExpression alloc] initWithPattern:regExPattern options:NSRegularExpressionCaseInsensitive error:nil];
NSUInteger regExMatches = [regEx numberOfMatchesInString:emailString options:0 range:NSMakeRange(0, [emailString length])];
if (regExMatches == 0) {
return NO;
} else
return YES;
}
Run Code Online (Sandbox Code Playgroud)
正则表达式几乎匹配每个电子邮件地址,但是当地址格式为abc,def @ gmail.com时,它无法将其作为无效地址捕获.它不会拿起逗号.
任何人有任何想法,我出错了?谢谢
我试图将电子邮件中符合RFC 5322的 "发件人:"字段解析为两部分:显示名称和电子邮件地址,在Python 2.7中(显示名称可能为空).熟悉的例子是这样的
John Smith <jsmith@example.org>
Run Code Online (Sandbox Code Playgroud)
在上面,John Smith是显示名称,jsmith @ example.org是电子邮件地址.但以下也是一个有效的"发件人:"字段:
"unusual" <"very.(),:;<>[]\".VERY.\"very@\\ \"very\".unusual"@strange.example.com>
Run Code Online (Sandbox Code Playgroud)
在此示例中,display-name的返回值为
"unusual"
Run Code Online (Sandbox Code Playgroud)
和
"very.(),:;<>[]\".VERY.\"very@\\ \"very\".unusual"@strange.example.com
Run Code Online (Sandbox Code Playgroud)
是电子邮件地址.
您可以使用语法在Perl中解析它(如以下问题中所述:使用正则表达式验证电子邮件地址和"现代" 正则表达式的识别能力),但我想在Python 2.7中执行此操作.我曾尝试在Python中使用email.parser模块,但该模块似乎只能分隔那些以冒号区分的字段.所以,如果你做的事情
from email.parser import Parser
headers = Parser().parsestr('From: "John Smith" <jsmith@example.org>')
print headers['from']
Run Code Online (Sandbox Code Playgroud)
它会回来
"John Smith" <jsmith@example.com>
Run Code Online (Sandbox Code Playgroud)
而如果你用上面的代码替换最后一行
print headers['display-name']
Run Code Online (Sandbox Code Playgroud)
它会回来
None
Run Code Online (Sandbox Code Playgroud)
我非常感谢任何建议和意见.
我尝试在没有java中的正则表达式的情况下模拟电子邮件验证并编写此代码.我需要帮助来提高此代码的效率(或者请给我一个更好的方法来解决这个问题)
正则表达式: ^[(a-zA-Z-0-9-\\_\\+\\.)]+@[(a-z-A-z)]+\\.[(a-zA-z)]{2,3}$
public static boolean isValidEmailAddress(String email) {
boolean flag1 = false;
boolean flag2=false;
boolean flag3=false;
int j=0;
char[] emailChars = email.toCharArray();
for (int i = 0; i < emailChars.length;) {
char c = emailChars[i];
if (Character.isLetterOrDigit(c)) {
i++;
if(flag1==true&&flag2==true){
j++;
}
} else if (c == '@' && flag1==false&&flag2==false && flag3==false) {
i++;
flag1=true;
} else if(c=='.' && flag1==true && flag2==false&&flag3==false){
i++;
flag2 = true;
}
if(j==2 || j==3){
flag3=true;
}
}
return flag1&&flag2&&flag3;
}
Run Code Online (Sandbox Code Playgroud) 我得到以下字符串:
String line = "#food was testy. #drink lots of. #night was fab. #three #four";
Run Code Online (Sandbox Code Playgroud)
我想借此#food #drink #night #three和#four从它.
我试过这段代码:
String[] words = line.split("#");
for (String word: words) {
System.out.println(word);
}
Run Code Online (Sandbox Code Playgroud)
但它给food was testy,drink lots of,nigth was fab,three和four.
需要替换字符串中的电子邮件,因此:
inp = 'abc user@xxx.com 123 any@www foo @ bar 78@ppp @5555 aa@111"
Run Code Online (Sandbox Code Playgroud)
应该导致:
out = 'abc 123 foo bar"
Run Code Online (Sandbox Code Playgroud)
什么正则表达式使用?
In [148]: e = '[^\@]\@[^\@]'
In [149]: pattern = re.compile(e)
In [150]: pattern.sub('', s)
Out[150]: 'one aom 123 4two'
In [151]: s
Out[151]: 'one ab@com 123 4 @ two'
Run Code Online (Sandbox Code Playgroud)
对我不起作用
我在从 powershell 主体获取特定行时遇到一些问题。人力资源团队向我们发送电子邮件,逻辑应用程序获取电子邮件正文并将其传递给禁用用户的脚本。
本体是这样的:
Hi,
the following user have to be dismiss:
#mail: user1@mycompany.com
#mail: user2@mycompany.com
#mail: user2@mycompany.com
Bye
hr team
hrteam@mycompany.com
Run Code Online (Sandbox Code Playgroud)
我只想获取特定行:
#mail: user1@mycompany.com
#mail: user2@mycompany.com
#mail: user2@mycompany.com
Run Code Online (Sandbox Code Playgroud)
为此,我用以下代码做了一个技巧:
$Body
$SplitBody = $Body.split("").split(" ").Split("#")
$objetbody = $SplitBody.Replace(" ","").Trim()
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
Hi,
the
following
user
have
to
be
dismiss:
mail:
user1@mycompany.com
mail:
user2@mycompany.com
mail:
user2@mycompany.com
Bye
hr
team
hrteam@mycompany.com
Run Code Online (Sandbox Code Playgroud)
之后,我将 $objetbody 传递到 foreach 并循环所有行(在该 foreach 的末尾放置一个中断,因为它可以禁用 HR 邮件)。如果 HR 仅发送 1 封邮件即可禁用该流程。
我的问题是有没有办法获取包含邮件的特定行?
谢谢