正則表達式就像一把瑞士軍刀。
"potatoe" ==~ /potatoe/
假如你在groovyConsole運行它,將返回true.這裡有兩件需要注意的事情:
1.==~操作符。它類似于==操作符,但是用於匹配模式而不是計算相等性。
2.正則表達式包含在 '/'中.它會告訴Groovy這是個正則表達式而不是String.
"potatoe" ==~ /potatoe?/
"potato" ==~ /potatoe?/
這裡?表達的意思是'e'是可選的。
"motato" ==~ /potatoe?/
沒有可匹配的。
現在讓我來看些複雜的,我們定義一個方法用來測試正則表達式:
def checkSpelling(spellingAttempt, spellingRegularExpression)
{
if (spellingAttempt ==~ spellingRegularExpression)
{
println("Congratulations, you spelled it correctly.")
} else {
println("Sorry, try again.")
}
}
theRegularExpression = /Wisniewski/
checkSpelling("Wisniewski", theRegularExpression)
checkSpelling("Wisnewski", theRegularExpression)
這裡有兩件事情需要注意:
1.我們定義了函數
def checkSpelling(spellingAttempt, spellingRegularExpression)
函數是一個類似于閉包的代碼集合。函數通常擁有名字,然而閉包可以是匿名的,一旦我們定義了函數,我們就可以在以後重複使用。
在函數中的if語句中,我們判斷 spellingAttempt 參數時候匹配正則表達式通過使用==~操作符
theRegularExpression = /Wis[abcd]niewski/ // requires one of 'a', 'b', 'c' or 'd'
theRegularExpression = /Wis[abcd]?niewski/ // will allow one of 'a', 'b', 'c' or 'd', but not
required (like above)
theRegularExpression = /Wis[a-zA-Z]niewski/ // requires one of any upper\- or lower-case letter
theRegularExpression = /Wis[^abcd]niewski/ // requires one of any character that is '''not''' 'a',
'b', 'c' or 'd'
這裡使用了 *[ ]*.用來分組字符
theRegularExpression = /Wis[abcd]niewski/ // requires one of 'a', 'b', 'c' or 'd'
需要'a', 'b', 'c' , 'd'其中的一個。
theRegularExpression = /Wis[abcd]?niewski/ // will allow one of 'a', 'b', 'c' or 'd', but not
required (like above)
需要'a', 'b', 'c' , 'd'其中的一個,但不是必須的,因為在[ ]後面跟隨了一個?
theRegularExpression = /Wis[a-zA-Z]niewski/ // requires one of any upper\- or lower-case letter
需要一個任意的大寫或小寫字符。
theRegularExpression = /Wis[^abcd]niewski/ // requires one of any character that is '''not''' 'a',
'b', 'c' or 'd'
任何一個不是''a', 'b', 'c' , 'd'
更多的正則表達式操作符可以去參考官方文檔。
分享到:
相关推荐
在《Groovy学习笔记》这本书中,你可能会学到如何快速入门Groovy,理解其基本语法,包括变量、控制流、类和对象的创建,以及如何利用Groovy的特性来提高开发效率。此外,书中可能还会涵盖Groovy在实际项目中的应用,...
Groovy是一种动态、灵活的编程语言,它是Java平台上的一个重要的补充。Groovy结合了Python、Ruby和Smalltalk等语言的特性,同时保留了与Java的无缝集成能力,使得它在编写脚本、构建工具、Web应用以及企业级应用程序...
在Java开发中,Groovy是一种强大的、动态类型的脚本语言,它可以无缝地与Java代码集成,为开发者提供了更简洁、灵活的语法。本文将深入探讨在Java项目中使用Groovy的三种主要方式,并阐述它们各自的优势和应用场景。...
Groovy是一种动态、灵活的编程语言,它是Java平台上的一个主要补充,特别是在脚本编写和快速原型设计方面表现突出。...这份"Groovy学习笔记.pdf"应该会提供一个良好的起点,帮助你踏上Groovy的学习之旅。
Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合Groovy脚本,Java整合Groovy脚本Java整合...
标题中的“Groovy和Java相互调用1”指的是在编程时如何在Groovy语言环境中调用Java类,以及反之,如何在Java程序中调用Groovy类。这是一种跨语言交互的方式,特别是在混合使用Groovy和Java的项目中非常常见。 ...
1. 引入Groovy库:在Java项目中添加Groovy的相关依赖,通常是`groovy-all`,确保Java能够访问Groovy运行时环境。 2. 创建GroovyClassLoader:使用这个类加载器可以动态加载和执行Groovy脚本。它继承自Java的...
### Groovy学习笔记知识点梳理 #### 一、Groovy简介 - **概念**:Groovy是一种灵活的脚本语言,其设计初衷是为了更好地服务于Java开发者。它具备许多现代动态语言的特点,比如Python和Ruby,同时又能够无缝地与Java...
读书笔记:函数式编程 scala,java8,groovy 学习
以下是对Groovy学习笔记各章节的详细解释: ### 第1章:数字和字符串 在Groovy中,所有的数字都是Object类型的,这意味着你可以在对象上调用方法。例如,你可以直接在数字上使用加减乘除等运算符,如`12 + 8`。...
7. **动态语言支持**:JDK 7引入了 invokedynamic 指令,这是Java虚拟机的四大基础操作之一,用于支持动态类型语言的实现,如Groovy和JRuby。 8. **异常链**:JDK 7允许在捕获异常时保留原始异常信息,形成异常链,...
该项目是一套基于Groovy与Java融合的Groovy学习实践之路源码设计,总计包含91个文件,其中Groovy文件71个,XML文件6个,Java文件4个,Markdown文件2个,JSON文件2个,TXT文件2个,Git忽略文件1个,IML文件1个,以及...
通过阅读文章《Groovy学习笔记 Struts2集成--Groovy类作为Action》,你可以更深入地了解如何在实际项目中利用Groovy的特性来优化Struts2应用。提供的压缩包文件`struts2-groovy-plugin`可能包含了Struts2 Groovy插件...
标题“hugo110-java_run_groovy-master_java_”表明这是一个关于使用Java运行Groovy脚本的项目,可能是某个GitHub...通过学习和实践这个项目,你可以掌握如何在Java环境中利用Groovy的灵活性和便利性,提升开发效率。
SpringBoot、Gradle、Maven、Java和Groovy是Java生态系统中的重要组成部分,它们在现代软件开发中扮演着至关重要的角色。这篇详细的知识点解析将深入探讨这些技术及其相互关系。 1. **SpringBoot**: SpringBoot是...
Making Java Groovy is a practical handbook for developers who want to blend Groovy into their day to day work with Java It starts by introducing the key differences between Java and Groovy and how you...
学习和精通Groovy能帮助Java开发者提高生产力,编写更加简洁、高效的代码,并能更好地利用Java生态系统中的资源。无论是在日常开发、自动化任务,还是在构建复杂系统时,Groovy都能提供强大的支持。通过阅读《Master...
通过学习Groovy,开发者不仅可以提升个人技能,还能为现有的Java项目带来新的活力。无论是希望通过引入Groovy来提高开发效率,还是想要探索新的编程范式,《Making Java Groovy》都是一本值得推荐的指南。本书不仅...