当前位置: 首页 > wzjs >正文

怎么制作手机网站平台静态网站需要服务器吗

怎么制作手机网站平台,静态网站需要服务器吗,化工原料东莞网站建设,塘沽做网站的公司概述 正则表达式在任何一个编程语言中都是通用且必备的存在。Godot中也提供正则表达式功能。可以很好的对字符串进行高级处理。 以下就是Godot4中正则表达式的核心总结。 G o d o t 正 则 表 达 式 { R e g E x : 正 则 表 达 式 的 类 { . c o m p i l e ( "…

概述

正则表达式在任何一个编程语言中都是通用且必备的存在。Godot中也提供正则表达式功能。可以很好的对字符串进行高级处理。

以下就是Godot4中正则表达式的核心总结。

G o d o t 正 则 表 达 式 { R e g E x : 正 则 表 达 式 的 类 { . c o m p i l e ( " 正 则 表 达 式 " ) : 编 译 正 则 表 达 式 . s e a r c h ( 源 字 符 串 ) : 匹 配 一 项 . s e a r c h _ a l l ( 源 字 符 串 ) : 匹 配 全 部 R e g E x M a t c h : 单 个 匹 配 结 果 { . g e t _ s t r i n g ( ) : 获 取 匹 配 的 文 本 . g e t _ s t r i n g ( " 分 组 名 " ) : 获 取 匹 配 中 命 名 分 组 的 文 本 . g e t _ s t r i n g ( 分 组 下 标 ) : 获 取 匹 配 中 指 定 下 标 分 组 的 文 本 . g e t _ s t a r t ( ) : 获 取 匹 配 文 本 在 源 文 本 中 的 起 始 位 置 . g e t _ e n d ( ) : 获 取 匹 配 文 本 在 源 文 本 中 的 结 束 位 置 . g e t _ g r o u p _ c o u n t ( ) : 获 取 匹 配 文 本 中 组 的 数 量 使 用 方 法 : { 1. 创 建 R e g E x 实 例 : v a r r e g e x = R e g E x . n e w ( ) ; 2. 编 译 正 则 模 式 : { r e g e x . c o m p i l e ( " 正 则 表 达 式 " ) ; r e g e x . c o m p i l e ( r " 正 则 表 达 式 " ) ; 3. 获 取 第 一 个 匹 配 结 果 : { r e s u l t = r e g e x . s e a r c h ( 源 字 符 串 ) = > R e g E x M a t c h ; r e s u l t . g e t _ s t r i n g ( ) ; 4. 获 取 所 有 匹 配 结 果 : { r e g e x . s e a r c h _ a l l ( 源 字 符 串 ) = > A r r a y [ R e g E x M a t c h ] ; \scriptsize Godot正则表达式 \begin{cases} RegEx:正则表达式的类 \begin{cases} .compile("正则表达式"):编译正则表达式\\ .search(源字符串):匹配一项\\ .search\_all(源字符串):匹配全部\\ \end{cases} \\ RegExMatch:单个匹配结果 \begin{cases} .get\_string():获取匹配的文本\\ .get\_string("分组名"):获取匹配中命名分组的文本\\ .get\_string(分组下标):获取匹配中指定下标分组的文本\\ .get\_start():获取匹配文本在源文本中的起始位置\\ .get\_end():获取匹配文本在源文本中的结束位置\\ .get\_group\_count():获取匹配文本中组的数量\\ \end{cases} \\ 使用方法: \begin{cases} 1.创建RegEx实例:var \ regex = RegEx.new();\\ 2.编译正则模式: \begin{cases} regex.compile("正则表达式");\\ regex.compile(r"正则表达式");\\ \end{cases} \\ 3.获取第一个匹配结果: \begin{cases} result = regex.search(源字符串) => RegExMatch;\\ result.get\_string();\\ \end{cases} \\ 4.获取所有匹配结果: \begin{cases} regex.search\_all(源字符串) => Array[RegExMatch];\\ \end{cases} \\ \end{cases} \\ \end{cases} GodotRegEx{.compile("".search().search_all()RegExMatch.get_string().get_string("").get_string().get_start().get_end().get_group_count()使1.RegExvar regex=RegEx.new()2.{regex.compile("")regex.compile(r"")3.{result=regex.search()=>RegExMatch;result.get_string()4.{regex.search_all()=>Array[RegExMatch];

关于分组

正则表达式中括号括起来的就是一个分组,可以看作是一个子表达式。

  • get_string(0)get_string()获取的是整个匹配的字符串
  • get_string(1)获取的是分组1的字符串
  • get_string(2)获取的是分组2的字符串,依次类推…
  • get_start(1)get_end(1)获取的就是分组1在源字符串中的起始和结束位置

匹配结果分组示意图

在文本编辑框显示匹配文本

在Godot正则表达式总结的基础上,这里再提一个如何在TextEdit中高亮匹配项文本的问题。

将字符串定位转为文本编辑框定位

Godot在TextEdit和字符串之间的一个坑就是:

  • TextEdit是用行和列的二维定位,而String是一维定位,TextEdit并未提供相关的方法来转换
  • 要实现TextEdit中对正则匹配字符串的选择,则需要将TextEdittext中的一维定位,转成TextEdit光标的行列定位形式。
  • 方法也很简单,行数是其之前字符串中的\n数量,列数是其之前字符串中最后一行的文本长度。
  • 从字符串定位到文本编辑框光标定位
# 将字符串的1维定位转为TextEdit中的行列定位
func get_edit_pos(sttr:String,pos) -> Vector2:var edit_pos:Vector2var pre_str = sttr.left(pos)       // 位置之前的字符串edit_pos.y = pre_str.count("\n")          // 所在行var arr:PackedStringArray = pre_str.split("\n")edit_pos.x = arr[arr.size()-1].length()   // 所在列return edit_pos

获取匹配的起始和结束位置

使用RegExMatchget_start()get_end()可以获取匹配文本在源字符串中的起始和结束位置,通过上述的转化方式便可以获得在文本框中的起始和结束位置。

在文本框中选中匹配文本

通过TextEdit的select(),传入起始光标位置和结束光标位置,便可以选中匹配文本。

# 在文本编辑框中选中
edit.select(start.y,start.x,end.y,end.x)

关于正则匹配的基础函数封装

以下是我封装的两个函数,用于方便的获取匹配和在TextEdit中显示匹配的项。

# 获取匹配的结果数组
func get_matshs(source_str:String,reg:String) -> Array[RegExMatch]:var regex = RegEx.new()regex.compile(reg)return regex.search_all(source_str)  # 获取匹配结果# 选中文本编辑器中的匹配项
func hilight_match(edit:TextEdit,  # 文本编辑器reg:String,     # 正则表达式match_idx:=0,   # 匹配的索引gup_idx:= 0      # 分组索引
) -> void:var matchs:Array[RegExMatch] = get_matshs(edit.text,reg)  # 获取匹配结果# 当前匹配项var mtch:RegExMatchif matchs.size()>0:mtch = matchs[clampi(match_idx,0,matchs.size()-1)]# 转化字符串中的1D位置为文本框中的2D位置var start:Vector2 = get_edit_pos(edit.text,mtch.get_start(gup_idx))var end:Vector2 = get_edit_pos(edit.text,mtch.get_end(gup_idx))# 在文本编辑器中选中edit.select(start.y,start.x,end.y,end.x)

其中,hilight_match()中:

  • 使用clampi()限定match_idx的范围

测试

编写一个简单的界面,来测试效果:

代码如下:

extends Controlvar idx := 0  # 当前索引@onready var reg_txt: LineEdit = %regTxt
@onready var sourse_txt: CodeEdit = %sourseTxt
@onready var matchs_txt: CodeEdit = %matchsTxt
@onready var gup_index: SpinBox = %gupIndex...上述函数# 查找 - 显示第一项
func _on_find_btn_pressed() -> void:idx = 0hilight_match(sourse_txt,reg_txt.text,idx,int(gup_index.value))# 下一项
func _on_nex_btn_pressed() -> void:var size = get_matshs(sourse_txt.text,reg_txt.text).size()idx = wrapi(idx + 1,0,size)hilight_match(sourse_txt,reg_txt.text,idx,int(gup_index.value))

其中:

  • 使用wrapi在匹配结果中实现下标循环。

文章转载自:

http://HwKITjff.Ljngm.cn
http://Zd2BOGgD.Ljngm.cn
http://OhNl2syv.Ljngm.cn
http://dFKNctJA.Ljngm.cn
http://6AvZvghr.Ljngm.cn
http://6fQyUPMe.Ljngm.cn
http://uEFHcHj7.Ljngm.cn
http://Lv4Mewuq.Ljngm.cn
http://EcI1axHz.Ljngm.cn
http://IljmE0Z7.Ljngm.cn
http://J3R4HMTX.Ljngm.cn
http://K4aiLqlO.Ljngm.cn
http://fcrxjN95.Ljngm.cn
http://ZXAKkOld.Ljngm.cn
http://VUpELMW7.Ljngm.cn
http://vImF5jUQ.Ljngm.cn
http://RQoPiVON.Ljngm.cn
http://ZBJfqyvv.Ljngm.cn
http://NQrb7YQa.Ljngm.cn
http://e0GU5vTd.Ljngm.cn
http://ca2s4SrA.Ljngm.cn
http://H7cztQ4c.Ljngm.cn
http://13Z3VjUL.Ljngm.cn
http://abBMyrbL.Ljngm.cn
http://c8Z1eibi.Ljngm.cn
http://fUosFEyJ.Ljngm.cn
http://P4sLn1H1.Ljngm.cn
http://H2KB7IiY.Ljngm.cn
http://dHXxAHQo.Ljngm.cn
http://tmy3exkH.Ljngm.cn
http://www.dtcms.com/wzjs/686454.html

相关文章:

  • 培训机构网站php源码中国十大平面设计师
  • 网站开发哪家公司比较好行业门户网站案例分析
  • 微信微网站开发策划网站建设前 需要准备的
  • 高端网站制作哪家好营销培训课程有哪些
  • 湛江建设培训学校网站整合营销名词解释
  • 西安市建设局网站九九建站-网站建设 网站推广 seo优化 seo培训
  • 网站建设 网站运营wordpress杰奇
  • 哈尔滨快速建站专业定制南宁seo域名
  • 做网站做一个什么主题的微信小程序广告投放价格表
  • 网页设计的网站配色方案北京网站设计
  • 西安网站建设公司平台青岛网站推广的价格
  • 石家庄建设网站公司哪家好网站建设网点
  • 爱站seo工具包下载凡科网注册
  • 如何建做校园购物网站建设网站不要服务器可以吗
  • 网页的创新型网站策划网站模板怎么套用
  • 某网站seo诊断分析和优化方案义乌网站建设优化排名
  • 手机app网站规划网站总结
  • 佛山网站建设优化百度如何收录网站
  • 企业网站产品内页优化公司网络营销方案思路
  • 安全的集团网站建设金融投资公司网站模板
  • 相关网站查询seo顾问招聘
  • 网站开发工程师工作描述wordpress如何设置用户浏览权限
  • 免费公司网页制作wordpress必备优化插件
  • 专做写字楼出租的网站911制品厂麻花
  • 私募股权基金网站建设wordpress增加动效
  • 留言网站模板给企业做网站
  • 聊城做网站多少钱wordpress module破解
  • 厦门网站建设建设公司建设响应式网站有哪些好处
  • 公司网站建设制作wordpress 严重 漏洞
  • 免费学设计的网站网站程序更换