以下python脚本允许我使用正则表达式从给定文件中删除电子邮件地址.
我怎么能添加这个以便我也可以获得电话号码?比如说,如果它是7位数或10位数(带区号),还算括号括号?
我目前的脚本可以在下面找到:
# filename variables
filename = 'file.txt'
newfilename = 'result.txt'
# read the file
if os.path.exists(filename):
data = open(filename,'r')
bulkemails = data.read()
else:
print "File not found."
raise SystemExit
# regex = something@whatever.xxx
r = re.compile(r'(\b[\w.]+@+[\w.]+.+[\w.]\b)')
results = r.findall(bulkemails)
emails = ""
for x in results:
emails += str(x)+"\n"
# function to write file
def writefile():
f = open(newfilename, 'w')
f.write(emails)
f.close()
print "File written."
Run Code Online (Sandbox Code Playgroud)
正则表达式的电话号码:
(\d{3}[-\.\s]\d{3}[-\.\s]\d{4}|\(\d{3}\)\s*\d{3}[-\.\s]\d{4}|\d{3}[-\.\s]\d{4})
Run Code Online (Sandbox Code Playgroud)
电话号码的另一个正则表达式:
(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?
Run Code Online (Sandbox Code Playgroud) 在您说这已经被问过之前,请知道我已经审查了这些:
假设我正在制作一个必须保存和解析电话号码的程序,我想确保它们以标准格式保存,因此其他程序也可以解析它们.
例如,我看到以下所有内容都是同一美国电话号码的有效表示:
1234567123-4567123 45675551234567(555) 1234567555-1234567555 123 4567555-123-4567(555)-123-4567(555) 123-4567(5) 123 45671-555-123-4567(1) 555-123-4567然后不同的国家以不同的方式表示数字:
55 1234 567 890155 12 3456 789055 123 456 789055 1234 567890555 123 456(55) 123 45675.555.123-45-67如您所见,用户可以看到有效电话号码的方式几乎是无限的(英国电话号码的维基百科页面长度接近100个打印机页面).我希望我的数据库中的所有数字都是普遍可识别的格式.据我所知,ISO没有定义的格式.电话号码有标准符号吗?
有效的电话号码包含:
少于9个字符,开头是"+",只有数字.
我试图使用正则表达式,但我只是开始使用它们,我不擅长它.我到目前为止的代码是:
static void Main(string[] args)
{
Console.WriteLine("Enter a phone number.");
string telNo = Console.ReadLine();
if (Regex.Match(telNo, @"^(\+[0-9])$").Success)
Console.WriteLine("correctly entered");
else
Console.WriteLine("incorrectly entered");
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何以这种方式检查字符串的长度.任何帮助表示赞赏.
这是我第一次尝试制作ios应用程序.
我正在使用人物选择器向用户询问电话号码,但是当它使用下面的代码检索时,我的NSString *phoneapears如(0)111192222-2222.我来自巴西,这里正确的手机号码掩码是(01111)92222-2222(9是可选的,有些数字有其他人没有).如何修复这个面膜?或者完全删除它?
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier
{
ABMultiValueRef multiValue = ABRecordCopyValue(person, property);
CFIndex index = ABMultiValueGetIndexForIdentifier(multiValue, identifier);
NSString *phone = (__bridge NSString *)ABMultiValueCopyValueAtIndex(multiValue, index);
return NO;
}
Run Code Online (Sandbox Code Playgroud) 在下面的代码中,我试图让输出为电话号码的不同格式,如果它是有效的.我想出了一切,但第11行的Java正则表达式代码是字符串模式.
import java.util.regex.*;
public class MatchPhoneNumbers {
public static void main(String[] args) {
String[] testStrings = {
/* Following are valid phone number examples */
"(123)4567890", "1234567890", "123-456-7890", "(123)456-7890",
/* Following are invalid phone numbers */
"(1234567890)","123)4567890", "12345678901", "(1)234567890",
"(123)-4567890", "1", "12-3456-7890", "123-4567", "Hello world"};
// TODO: Modify the following line. Use your regular expression here
String pattern = "^/d(?:-/d{3}){3}/d$";
// current pattern recognizes any string of digits
// Apply regular expression to each test string
for(String inputString : testStrings) …Run Code Online (Sandbox Code Playgroud) 可能重复:
用于电话号码验证的全面正则表达式
我有一个未格式化的电话号码(保证是10位数)和未格式化的扩展名(可以是空,空白或任意数量的数字).我需要将它们组合成一个"友好"的字符串.我以为我会连接它们,然后使用Regex.Replace格式化连接.这是我插入之前用来尝试各种正则表达式的单元测试:
[Test, Ignore("Sandbox, does not test production code")]
public void TestPhoneRegex()
{
string number = "1234567890";
string extension = "";
var formattedContactNumber =
Regex.Replace("{0} x{1}".FormatWith(number, extension),
@"^(\d{3})[ -]?(\d{3})[ -]?(\d{4})( x\d+)?",
@"$1-$2-$3$4");
Debug.WriteLine("{0} x{1}".FormatWith(number, extension));
Debug.WriteLine(formattedContactNumber);
Assert.AreEqual("123-456-7890", formattedContactNumber);
}
Run Code Online (Sandbox Code Playgroud)
预期的格式化字符串是格式化的电话号码,没有"x"和扩展名.但是,最后一个捕获组匹配"x"后面有或没有数字,所以代替"123-456-7890"我得到"123-456-7890 x".这是在发布之前需要关联的最后一点开发.救命?
任何人都可以告诉我RegEx将用于验证国际电话号码,包括号码之间的空格,以及允许这些字符:- ( ).
字符串中的数字量不是太重要,我希望用户能够键入类似示例1或2的内容,如果他们愿意:
例:
+44 (0) 207 111 1111
442071111111
我已经阅读并根据我的理解测试了一些类似问题的已发布答案,但到目前为止,他们都没有按我希望的方式为我工作.
请有人帮我解释一下如何编写上述内容以进行验证吗?
非常感谢任何可以提供帮助的人.
大家好,
我是Stackoverflow的新手,我有一个简单的问题.让我们假设我们获得了大量的HTML文件(理论上无限大).如何使用正则表达式从所有这些文件中提取电话号码列表?
解释/表达将非常感激.电话号码可以是以下任何格式:
非常感谢您的帮助并拥有一个好的帮助!
长话短说,我试图验证手机领域.香港专业教育学院添加了isNaN和在现场parseInt检查," "但说
以下从未证实真实......我错过了什么?
if(isNaN(parseInt(phone))){
error.text("Sorry but this phone field requires numbers only");
return false;
} else {
return true;
}
Run Code Online (Sandbox Code Playgroud)
它总是失败......即使我在现场输入一个数字并提交,它也永远不会成立.我总是得到错误mssg.
编辑:我正在测试表单中的输入值,phone是字段的名称.
regex ×7
phone-number ×4
c# ×2
javascript ×2
objective-c ×2
cocoa-touch ×1
java ×1
nan ×1
parseint ×1
python ×1
standards ×1
validation ×1
whitespace ×1