首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于程序员来说,什么是最有用的正则表达式?

对于程序员来说,什么是最有用的正则表达式?
EN

Stack Overflow用户
提问于 2009-09-19 23:44:33
回答 10查看 16.5K关注 0票数 19

我对正则表达式很陌生,刚刚开始学习一些。我想知道程序员最常用的一些正则表达式是什么。换句话说,我想知道正则表达式最有用的是什么?他们怎么能在我的日常工作中帮助我?我更希望知道正则表达式对每天编程有用,而不是偶尔使用正则表达式,比如电子邮件地址匹配。

有没有人?谢谢。

编辑:大多数答案包括正则表达式,以匹配电子邮件地址、URL、日期、电话号码等。请注意,并非所有程序员在日常工作中都要担心这些事情。我想知道的正则表达式的一些更通用的用法,如果有的话,程序员一般(可能)都会使用,而不管他们在哪种语言中工作。

EN

回答 10

Stack Overflow用户

发布于 2009-09-19 23:56:12

正则表达式示例

小数输入

  1. 正整数^\d+$
  2. 负整数^-\d+$
  3. 整数^-?\d+$
  4. 正数^\d*\.?\d+$
  5. 负数^-\d*\.?\d+$
  6. 正数或负数^-?\d*\.?\d+$
  7. 电话号码^\+?[\d\s]{3,}$
  8. 带有代码^\+?[\d\s]+\(?[\d\s]{10,}$的电话
  9. 1900年-2099年^(19|20)\d{2}$
  10. 日期(dd mm yyyy,d/m/yyyy,etc.)^(1-9|01-9|12|301)\D(1-9|01-9|1012)\D(190-9|200-9)$

IP v4:

代码语言:javascript
复制
    ^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]){3}$

字母输入

  • 个人姓名^[\w.']{2,}(\s[\w.']{2,})+$
  • 用户名^[\w\d_.]{4,}$
  • 密码至少有6个符号^.{6,}$
  • 密码或空输入^.{6,}$|^$
  • 电子邮件^[_]*([a-z0-9]+(\.|_*)?)+@([a-z][a-z0-9-]+(\.|-*\.))+[a-z]{2,6}$
  • ^([a-z][a-z0-9-]+(\.|-*\.))+[a-z]{2,6}$

其他正则表达式-不匹配输入^$ -匹配空白输入^\s\t*$ -匹配新行[\r\n]|$ -匹配空格^\s+$ -匹配Url = ^http\:\/\/[a-zA-Z0-9.-]+\.[a-zA-Z]{2,3}$

票数 35
EN

Stack Overflow用户

发布于 2009-09-20 00:01:05

我会对此采取不同的观点,并说知道什么时候使用正则表达式和什么时候不使用正则表达式是最有帮助的。

例如,想象一下这个问题:“找出一个字符串是否以空格字符结尾。”这里可以使用正则表达式,但是如果您使用的是C#,则这段代码要快得多:

代码语言:javascript
复制
bool EndsWithWhitespace(string s)
{
    return !string.IsNullOrEmpty(s) && char.IsWhiteSpace(s[s.Length - 1]);
}

正则表达式是强大的,重要的是要知道当它们是时,对于您想要解决的问题来说,它们太强大了。

票数 5
EN

Stack Overflow用户

发布于 2009-09-19 23:48:26

考虑需要验证的输入字段,例如邮政编码、电话号码等等。正则表达式用于验证这些表达式。另外,看看这个站点,它包含了许多教程和更多的示例,下面我将介绍其中的一些例子:

由于正则表达式使用的是文本而不是数字,所以需要特别小心才能匹配特定的数字范围。 匹配浮点数。还说明了将正则表达式中的所有内容都作为可选选项的常见错误。 匹配一个电子邮件地址。有很多争议,关于什么是合适的判断匹配电子邮件地址。这是一个完美的例子,表明您需要确切地了解您想要匹配的内容(以及不匹配的内容),并且在正则表达式的复杂性和准确性之间总是存在权衡。 匹配有效日期.是一个正则表达式,与31-12-1999匹配,而不是31-13-1999. 查找或验证信用卡号码。验证在您的订单中输入的信用卡号码。在文件中查找信用卡号码,以便进行安全审核。

还有很多,更多,更多可能的应用程序。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1449817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档