我已经工作了5年,主要是访问Oracle数据库的java桌面应用程序,我从未使用过正则表达式。 现在我进入Stack Overflow,我看到很多关于它们的问题; 我觉得我错过了什么。

你用什么正则表达式?

PS抱歉我的英语不好

===============>>#1 票数:7

正则表达式(或正则表达式)用于在字符串中模式匹配。 因此,您可以从一段文本中提取所有电子邮件地址,因为它遵循特定模式。

在某些情况下,正则表达式用正斜杠括起来,在第二个斜杠后放置选项,例如不区分大小写。 这是一个很好的:)

/(bb|[^b]{2})/i

说它可以读为“2是或不是2”。

第一部分是(括号),它们被管道分开 等于或声明的字符,因此(a | b)匹配“a”或“b”。 管道区域的前半部分与“bb”相匹配。 下半场的名字我不知道,但它是方括号,它们匹配任何不是 “b”的东西,这就是为什么那里有屋顶符号的东西(技术术语)。 波浪形括号与它们之前的事物的数量相匹配,在这种情况下,两个字符不是“b”。

在第二个/之后是“i”,使其不区分大小写。 使用开始和结束斜杠是特定于环境的,有时候你会这样做,有时则不然。

我认为你会发现两个链接很方便

  1. regular-expressions.info
  2. 维基百科 - 正则表达式

===============>>#2 票数:7 已采纳

考虑一下Ruby中的一个例子:

puts "Matched!" unless /\d{3}-\d{4}/.match("555-1234").nil?
puts "Didn't match!" if /\d{3}-\d{4}/.match("Not phone number").nil?

“/ \\ d {3} - \\ d {4} /”是正则表达式,正如您所看到的,它是一种在字符串中查找匹配的非常简洁的方法。

此外,使用组可以提取信息,如下所示:

match = /([^@]*)@(.*)/.match("myaddress@domain.com")
name = match[1]
domain = match[2]

这里,正则表达式中的括号标记了一个捕获组,因此您可以确切地看到匹配的数据是什么,因此您可以进行进一步处理。

这只是冰山一角......你可以在正则表达式中做很多不同的事情,这使得处理文本变得非常简单。

===============>>#3 票数:6

有史以来最酷的正则表达:

/^1?$|^(11+?)\1+$/

它测试一个数字是否为素数。 它的工作原理!!

注意:要使其工作,需要进行一些设置; 我们要测试的数量已经被转换成的“串1 ”的第一个, 那么我们可以将表达式来测试,如果字符串包含“质数1 ” S:

def is_prime(n)
  str = "1" * n
  return str !~ /^1?$|^(11+?)\1+$/ 
end

Avinash Meetoo的博客上有一个详细而且非常平易近人的解释。

===============>>#4 票数:2

如果您想了解正则表达式,我建议掌握正则表达式 它从最基本的概念一直到讨论不同引擎如何在其下工作。 最后4章还为PHP,.Net,Perl和Java提供了专门的章节。 我从中学到了很多东西,仍然用它作为参考。

===============>>#5 票数:0

验证强密码

这个将验证一个长度为5到10个字母数字字符的密码,至少有一个大写字母,一个小写字母和一个数字:

^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{5,10}$

===============>>#6 票数:0

您可能知道,Oracle现在有正则表达式: http//www.oracle.com/technology/oramag/webcolumns/2003/techarticles/rischert_regexp_pt1.html 我在一些查询中使用了新功能,但它没有在其他环境中那么有用。 我认为,原因是正则表达式最适合于查找隐藏在非结构化数据中的结构化数据。

例如,我可能会使用正则表达式来查找填充在日志文件中的Oracle消息。 不可能知道消息的位置 - 只是它们的样子。 因此正则表达式是解决该问题的最佳方案。 当您使用关系数据库时,数据通常是预先构造的,因此正则表达式不会在该上下文中发挥作用。

===============>>#7 票数:0

这些RE特定于Visual Studio和C ++,但我发现它们有时很有用:

查找所有出现的“routineName”,其中传递了非默认参数:

routineName \\(:A + \\)

相反,只用默认值查找所有出现的“routineName”: routineName \\(\\)

要在调试版本中查找启用(或禁用)的代码:

\\#如果。 _DEBUG *

请注意,这将捕获所有变体:ifdef,if defined,ifndef,if!defined

===============>>#8 票数:0

正则表达式(regex或简称regexp)是用于描述搜索模式的特殊文本字符串。 您可以将正则表达式视为类固醇上的通配符。 您可能熟悉通配符,例如*.txt以查找文件管理器中的所有文本文件。 正则表达式等价于.*\\.txt$

正则表达式的一个很好的资源: http//www.regular-expressions.info

===============>>#9 票数:0

如果您刚开始使用正则表达式,我衷心推荐像The Regex Coach这样的工具:

http://www.weitz.de/regex-coach/

还听说过RegexBuddy的好消息:

http://www.regexbuddy.com/

  ask by Telcontar translate from so

未解决问题?本站智能推荐: