我已经工作了5年,主要是访问Oracle数据库的java桌面应用程序,我从未使用过正则表达式.现在我进入Stack Overflow,我看到很多关于它们的问题; 我觉得我错过了什么.
你用什么正则表达式?
PS抱歉我的英语不好
正则表达式(或正则表达式)用于在字符串中模式匹配.因此,您可以从一段文本中提取所有电子邮件地址,因为它遵循特定模式.
在某些情况下,正则表达式用正斜杠括起来,在第二个斜杠后放置选项,例如不区分大小写.这是一个很好的:)
/(bb|[^b]{2})/i
Run Code Online (Sandbox Code Playgroud)
说它可以读为"2是或不是2".
第一部分是(括号),它们被管道分开 等于或声明的字符,因此(a | b)匹配"a"或"b".管道区域的前半部分与"bb"相匹配.下半场的名字我不知道,但它是方括号,它们匹配任何不是 "b"的东西,这就是为什么那里有屋顶符号的东西(技术术语).波浪形括号与它们之前的事物的数量相匹配,在这种情况下,两个字符不是"b".
在第二个/之后是"i",使其不区分大小写.使用开始和结束斜杠是特定于环境的,有时候你会这样做,有时则不然.
我认为你会发现两个链接很方便
考虑一下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?
Run Code Online (Sandbox Code Playgroud)
"/\d {3} - \d {4} /"是正则表达式,正如您所看到的,它是一种在字符串中查找匹配的非常简洁的方法.
此外,使用组可以提取信息,如下所示:
match = /([^@]*)@(.*)/.match("myaddress@domain.com")
name = match[1]
domain = match[2]
Run Code Online (Sandbox Code Playgroud)
这里,正则表达式中的括号标记了一个捕获组,因此您可以确切地看到匹配的数据是什么,因此您可以进行进一步处理.
这只是冰山一角......你可以在正则表达式中做很多不同的事情,这使得处理文本变得非常简单.
有史以来最酷的正则表达:
/^1?$|^(11+?)\1+$/
Run Code Online (Sandbox Code Playgroud)
它测试一个数字是否为素数.它的工作原理!!
注意:要使其工作,需要进行一些设置; 我们要测试的数量必须转换成"串1"的第一个,那么我们可以将表达式来测试如果字符串不包含的素数" 1" S:
def is_prime(n)
str = "1" * n
return str !~ /^1?$|^(11+?)\1+$/
end
Run Code Online (Sandbox Code Playgroud)
在Avinash Meetoo的博客上有一个详细而且非常平易近人的解释.
| 归档时间: |
|
| 查看次数: |
2623 次 |
| 最近记录: |