23.4.21总结(正则及项目)

文章深入介绍了正则表达式的概念、限定符、字符类、元字符以及贪婪与懒惰匹配的原理。同时,提到了一个使用JavaFX构建的教育应用项目,包括不同的用户界面如登录、注册、忘记密码等,以及与数据库交互的模型和服务层设计。
摘要由CSDN通过智能技术生成

正则表达式

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。

正则表达式是一种对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

限定符

1、?

used?

代表 '?' 前面的 ‘d’ 需要出现0次或者1次(例如可以查询到use和used)

2、*

会匹配0个或者多个字符

ab*c

代表b可以没有,也可以出现多次(例如可以查找到ac、abc、abbc等)

3、+

会匹配到1个或者多个字符

ab+c

‘b’ 会出现1次以上(例如abc、abbc等)

4、{}

指定字符出现的次数

ab{6}c

指定 ‘b’ 出现6次

ab{2,6}

希望 ‘b’ 出现2~6次

ab{2,}

希望 ‘b’ 出现2次以上

5、()

以上四个是限制一个字符,如果要限制多个字符,可以使用()

(ab)+

希望 ‘ab’ 出现一次以上(例如ab、abab等)

“或”运算符

1、|

a cat|dog

要么是a cat,要么是dog

a (cat|dog)

要么是a cat,要么是a dog

字符类

匹配一个单词

1、[]

要求匹配的字符只能取自与它们

[abc]

希望找到abc

[abc]+

希望找到由abc三个字母构成的词(例如:abc、aabc、bca)

[a-zA-Z0-9]+

代表所有的英文字符和数字

2、^

匹配除了尖括号后面列出的以外的字符

[^0-9]+

表示找出来数字以外的词(例如ab、r  er等)

元字符

1、\d

  • 数字字符
  • 等同于写的[0-9]

2、\w

  • 单词字符
  • 所有的英文字符、数字、下划线

3、\s

  • 空白符
  • 包含Tab和换行符

4、\D

  • 符数字字符

5、\W

  • 非单词字符

6、\S

  • 非空白字符

7、.

  • 代表任意字符
  • 不包含换行符

贪婪与懒惰匹配

<.+>

对于下面字段:<span><b>This is a sample text</b></span>

上面的表达式会全部匹配,这是贪婪匹配

如果要的不是这个结果,可以改为

<.+?>

此时匹配的是:<span>、<b>、<b\>、</span>

这是懒惰匹配

项目 

最近做了登录、注册、忘记密码的页面:

 

项目结构:

  • src
    • resources
      • client(客户)
      • controller(控制器)
      • image(图片)
      • sample(fxml文件)
      • server(服务)
      • tool(工具)
      • test(测试)
      • models(模型)

sample(fxml文件)

  • Login.fxml(登录)
  • RegisterTeacher.fxml(注册)
  • ForgetPassword.fxml(忘记密码)
  • ClassroomInteraction.fxml(班级)
  • CreateClass.fxml(创建班级)
  • JoinClass.fxml(加入班级)
  • Quiz.fxml(测验)
  • SignIn.fxml(签到)
  • StudentDashboard.fxml(学生总表)
  • TeacherDashboard.fxml(老师总表)
  • RandomSelection.fxml(随机选人)
  • PublishHomework.fxml(发布作业)
  • HomewordSubmission.fxml(提交作业)
  • HomeworkManagement.fxml(作业管理)
  • DownloadMaterials.fxml(下载文件)
  • RejectHomework.fxml(打回作业)
  • CorrectHomework.fxml(批改作业)

controller(控制器)

对每一个fxml文件创建一个对应的java控制类:

  • LoginController.java
  • RegisterController.java
  • ForgetPasswordTest.java()
  • ClassroomInteractionController.java
  • CreateClassController.java
  • JoinClassController.java
  • QuizController.java
  • SignInController.java
  • StudentDashboardController.java
  • TeacherDashboardController.java
  • RandomSelectionController.java
  • PublishHomeworkController.java
  • HomewordSubmissionController.java
  • HomeworkManagementController.java
  • DownloadMaterialsController.java
  • RejectHomeworkController.java
  • CorrectHomeworkController.java

models(模型)

创建与数据库对应的模型类:

  • User.java
  • Student.java
  • Teacher.java
  • Classroom.java
  • Material.java
  • HomeworkSubmission.java
  • Homework.java

server(服务)

创建服务类来处理不同功能模块的业务逻辑:

  • UserService.java
  • ClassroomService.java
  • MaterialSevice.java
  • homeworkSevice.java

tool(工具)

创建工具类处理公共功能

Main主类

启动javaFX程序

1.用户表(user)

  • id(用户ID,主键)
  • username(用户名)
  • name(姓名)
  • email(邮箱)
  • password(密码)
  • userTyte(用户类型)
  • create_at(创建时间)
  • update_at(更新时间)

2.班级表(class)

  • id(班级ID,主键)
  • name(班级名称)
  • teacher_id(教师ID,外键)
  • create_at(创建时间)
  • update_at(更新时间)

3.用户-班级表

  • id(关系ID,主键)
  • user_id(用户ID,外键)
  • class_id(班级ID,外键)

4.作业表(homework)

  • id(作业ID,主键)
  • class_id(班级ID,外键)
  • content(作业内容)
  • type(作业类型:主观题、选择题)
  • createDate(发布时间)
  • dueDate(截止时间)

5.学生作业表(student_homework)

  • id(学生作业ID,主键)
  • user_id(用户ID,外键)
  • homework_id(作业ID,外键)
  • submissionType(提交类型:图片,文字,文件)
  • status(作业状态:未提交,已提交,已打回,已批改)
  • create_at(创建时间)
  • update_at(更新时间)

6.课堂互动表(class_interaction)

  • id(互动ID,主键)
  • class_id(班级ID,外键)
  • teacher_id(教师ID,外键)
  • type(类型:签到、问题抢答、随机选人)
  • update(更新时间)

7.发布的资料表(materials)

  • id(资料ID,主键)
  • class_id(班级ID,外键)
  • teacher_id(教师ID,外键)
  • title(标题)
  • file(文件路径)
  • update(更新时间)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明里灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值