我正在尝试从g-mail中的邮件中定期提取发送给我的信息。我想从电子邮件中提取数据并将其添加到Google工作表中的电子表格中。
我对这种类型的编程完全没有经验,而且我一直在尝试使用反复试验来解决这个问题。到目前为止,我没有运气,而我所能得到的只是电子表格上写有空值。
我正在尝试使用正则表达式来解析我需要的数据,然后从那里我使用appendRow写入电子表格。
var tmp;
var stringToParse = "*Longitude* W119.37938";
tmp = stringToParse.match(/d{1,4}\.\d{5}/);
var username = (tmp && tmp[1]) ? tmp[1].trim() : 'No username';
qs_sheet.appendRow([username]);
Utilities.sleep(500);
}
}
};
我认为我的问题在于:
private void button1_Click(object sender, EventArgs e)
{
string items = string.Empty;
foreach (var item in checkedListBox1.CheckedItems)
{
if (items.Length == 0)
items = item.ToString();
else
items = items + "," + item;
}
//make myCommand object and open connection on your own
myCommand = new SqlCommand(query, myConn);
string query = @'select distinct firstName, lastName, chineseName, teacherEmail, entryYear, leaveYear, userLoginId, ad.applicationId
from [teacher_detail] as td
LEFT JOIN[class_detail] as cd ON td.teacherId = cd.teacherId
LEFT JOIN[application_teacher] as at ON at.teacherId = td.teacherId
LEFT JOIN[application_detail] as ad ON at.applicationId = ad.applicationId
Where ad.applicationId = 2
and chineseName in (@name)'
myCommand.Parameters.Add("@name", SqlDbType.nvarchar);
myCommand.Parameters["@name"].Value = items;
//now execute query
}
感谢您的帮助!
答案 0 :(得分:0)
除了你的正则表达式中的拼写错误(缺少第一个d
的反斜杠),问题是你没有在正则表达式中指定任何捕获组(圆括号组),并试图访问第一个具有tmp[1]
的不存在的捕获组。
如果您需要获取119.37938
值,请使用tmp[0]
:
var stringToParse = "*Longitude* W119.37938";
tmp = stringToParse.match(/\d{1,4}\.\d{5}/);
var username = (tmp && tmp[0]) ? tmp[0] : 'No username';
document.write(username);
请注意.trim()
是多余的,因为正则表达式只会在匹配结束时捕获数字。