GDScrpt中的正则应用

GDScrpt中的正则应用

简介

使用正则的目的是为了把符合条件的字符串从指定文本中抠出来。
而让程序理解具体条件所用到的语法规则就是正则,而具体的条件就是正则表达式
判断一个表达式是否正确主要看两点:
1.找到全部想要的字符串
2.不会找到不想要的字符串。

GDScript中的正则涉及到两个类: RegExRegExMatch
RegEx 的作用是使用正则对指定文本进行搜索
RegExMatch 的作用是存储正则搜索后的结果,结果可以是字符串、数组或是字典。

常见格式:

	# 实例化正则类
	var regex = RegEx.new() 
	# 设定正则表达式
	regex.compile("正则表达式") 
	# 使用设定的正则表达式对文本进行搜索,并找到第一个符合要求的字符串,并存储于 RegExMatch 容器,没找到则返回null。
	var result = regex.search("需要查找的文本") 
	# 使用设定的正则表达式对文本进行搜索,并找到每个非重叠结果,并存储于 RegExMatch 容器数组,没找到则返回一个空数组。
	var results = regex.search_all("需要查找的文本") # 这里的返回结果是存储RegExMatch结果的数组 请注意,返回的结果并不是String类型
	
	if result:
		print(result.get_string()) # 如果要提取字符串,想要用到RegExMatch类的get_string()方法。

	if results:
		for s in results:
			print(s.get_string())

正则表达式的语法规则:

1. 单字符

字符的作用非常简单,就是告知要搜索的具体字符。

regex.compile(“xx”)

作用就是找出待查找文本中"xx"。

regex.search(“xy xxx”)

输出结果:

xx

需要注意的是,xxx可以分解为 xx x和x xx。但结果只找到了一个xx
这是因为匹配是从左到右进行, 同时光标会进行移动, 所以找到第一个xx后,无法回头去找第二个

2. “*” “?” " +" “.”

这三个字符的作用是复制其之前的字符或子表达式。
"*" 复制前面的字符或子表达式零次多次。例如,zo* 能匹配 “z” 、“zoo” 以及 “zoooo”。
"+" 复制前面的字符或子表达式一次多次。例如,zo+ 能匹配 “zo” 、“zoo” 以及 “zoooo”。
"?" 复制前面的字符或子表达式零次一次。例如,zo? 能匹配 “z”、“zo”

regex.compile(“xy*”)
regex.compile(“xy+”)
regex.compile(“xy?”)
var result =

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值