正则表达式:安琪拉之歌Aquarian文字查找与翻译
现学现卖的用于在Aquaria的诸地图中查找Aquarian文字的正则表达式,第一次编写总归值得留念。
用UltraEdit打开所有地图文件,将窗口缩小到只剩两三行,如此可以提高搜索速度,然后开始搜索,引擎用Perl和Unix就是别用UltraEdit。
(?:"| )(?:102[4-9]|10[34][0-9]|1050) ([^ -]{1,2})\d{3} ([^ -]{1,2})\d{3} [^ ]+ [^ ]+ [^ ]+ -?\d -?\d -?\d -?\d -?\d(?: (?:102[4-9]|10[34][0-9]|1050) \1\d{3} \2\d{3} [^ ]+ [^ ]+ [^ ]+ -?\d -?\d -?\d -?\d -?\d)*
第一个数字为物品代号,第二三数字为XY坐标,其他不详。把世界地图复制到MOD文件夹作为MOD地图就可以编辑了,文字的翻译可参考 安琪拉之歌 简易文字翻译工具 。
参考:
百度百科
常用正则表达式
正则表达式30分钟入门教程
PS:正则表达式
元字符
|
描述
|
第一类:通用
\
|
将下一个字符标记为一个特殊字符、或一个原义字符、或一个向后引用、或一个八进制转义符。例如,“\n”匹配字符“n”。“\\n”匹配一个换行符。序列“\\”匹配“\”而“\(”则匹配“(”。
|
|
|
匹配x或y。例如,“z|food”能匹配“z”或“food”。“(z|f)ood”则匹配“zood”或“food”。
|
( )
|
用小括号来指定子表达式(也叫做分组)。如果不想用于捕获用途,可以使用(?: )。
|
?
|
当该字符紧跟在任何一个其他限制符(?,*,+,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o+”将匹配所有“o”。
|
第二类:重复次数限制符
?
|
匹配前面的子表达式零次或一次。例如,“do(es)?”可以匹配“does”或“does”中的“do”。?等价于{0,1}。
|
*
|
匹配前面的子表达式零次或多次。例如,zo*能匹配“z”以及“zoo”。*等价于{0,}。
|
+
|
匹配前面的子表达式一次或多次。例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”。+等价于{1,}。
|
{n}
|
匹配前面的子表达式n次。n是一个非负整数。例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o。
|
{n,}
|
匹配前面的子表达式n次或更多次。n是一个非负整数。例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o。“o{1,}”等价于“o+”。“o{0,}”则等价于“o*”。
|
{n,m}
|
<匹配前面的子表达式n次到m次。m和n均为非负整数,其中n<=m。例如,“o{1,3}”将匹配“fooooood”中的前三个o。“o{0,1}”等价于“o?”。请注意在逗号和两个数之间不能有空格。
|
第三类:匹配字符
. (点)
|
匹配除“\n”之外的任何单个字符。要匹配包括“\n”在内的任何字符,请使用像“[\s\S]”的模式。
|
^
|
匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。
|
$
|
匹配输入字符串的结束位置。如果设置了RegExp对象的Multiline属性,$也匹配“\n”或“\r”之前的位置。
|
\b
|
匹配一个单词边界,也就是指单词和空格间的位置。例如,“er\b”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。
|
\B
|
匹配非单词边界。“er\B”能匹配“verb”中的“er”,但不能匹配“never”中的“er”。
|
\cx
|
匹配由x指明的控制字符。例如,\cM匹配一个Control-M或回车符。x的值必须为A-Z或a-z之一。否则,将c视为一个原义的“c”字符。
|
\d
|
匹配一个数字字符。等价于[0-9]。
|
\D
|
匹配一个非数字字符。等价于[^0-9]。
|
\f
|
匹配一个换页符。等价于\x0c和\cL。
|
\n
|
匹配一个换行符。等价于\x0a和\cJ。
|
\r
|
匹配一个回车符。等价于\x0d和\cM。
|
\s
|
匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ \f\n\r\t\v]。
|
\S
|
匹配任何非空白字符。等价于[^ \f\n\r\t\v]。
|
\t
|
匹配一个制表符。等价于\x09和\cI。
|
\v
|
匹配一个垂直制表符。等价于\x0b和\cK。
|
\w
|
匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。
|
\W
|
匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
|
\n
|
标识一个八进制转义值或一个后向引用。如果\n之前至少n个获取的子表达式,则n为后向引用。否则,如果n为八进制数字(0-7),则n为一个八进制转义值。
|
\nm
|
标识一个八进制转义值或一个后向引用。如果\nm之前至少有nm个获得子表达式,则nm为后向引用。如果\nm之前至少有n个获取,则n为一个后跟文字m的后向引用。如果前面的条件都不满足,若n和m均为八进制数字(0-7),则\nm将匹配八进制转义值nm。
|
\nml
|
如果n为八进制数字(0-3),且m和l均为八进制数字(0-7),则匹配八进制转义值nml。
|
\xn
|
匹配n,其中n为十六进制转义值。十六进制转义值必须为确定的两个数字长。例如,“\x41”匹配“A”。“\x041”则等价于“\x04&1”。正则表达式中可以使用ASCII编码。
|
\un
|
匹配n,其中n是一个用四个十六进制数字表示的Unicode字符。例如,\u00A9匹配版权符号(©)。
|
第四类:字符集合
[xyz]
|
字符集合。匹配所包含的任意一个字符。例如,“[abc]”可以匹配“plain”中的“a”。
|
[^xyz]
|
负值字符集合。匹配未包含的任意字符。例如,“[^abc]”可以匹配“plain”中的“plin”。
|
[a-z]
|
字符范围。匹配指定范围内的任意字符。例如,“[a-z]”可以匹配“a”到“z”范围内的任意小写字母字符。
|
[^a-z]
|
负值字符范围。匹配任何不在指定范围内的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”范围内的任意字符。
|
第五类:捕获、后向引用,零宽断言与注释
(exp)
|
匹配exp,并捕获文本到自动命名的组里。这是子表达式的实际用途。
|
(?<name>exp)
|
匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)。 |
(?:exp)
|
匹配exp,不捕获匹配的文本,也不给此分组分配组号。
|
\n
|
使用小括号指定一个子表达式后,匹配这个子表达式的文本(也就是此分组捕获的内容)可以在表达式或其它程序中作进一步的处理.默认情况下,每个分组会自动拥有一个组号,规则是:从左向右,以分组的左括号为标志,第一个出现的分组的组号为1,第二个为2,以此类推。
|
(?=exp)
|
匹配exp前面的位置。正向肯定预查,这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
|
(?<=exp)
|
匹配exp后面的位置。反向肯定预查,与正向肯定预查类似,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。
|
(?!exp)
|
匹配后面不是exp的位置。正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。
|
(?<!exp)
|
匹配前面不是exp的位置。反向否定预查,与正向否定预查类似,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。
|
(?#exp)
|
注释。这种类型的分组不对正则表达式的处理产生任何影响,用于提供注释让人阅读
|
正则表达式:安琪拉之歌Aquarian文字查找与翻译相关推荐
- 遇到网络问题你是怎么解决的?安琪拉有二招
本文是以安琪拉在项目中解决的一个网络异常(Broken Pipe)为出发点写的,我想玩家们应该多少遇到过网络问题,这篇文章也提供了一种解决网络问题的思路,遇到类似网络问题时可以借鉴这个思路. 为了尽量 ...
- 安琪拉教鲁班玩Java反射-业务场景篇
安琪拉教鲁班玩Java反射-业务场景篇 Java 语言中有很多特性,其中有一项很重要的特性就是反射,我们在很多框架类的代码中可能会看到反射的身影,那实际在业务逻辑层是否可以用反射特性做些事情呢? 安琪 ...
- 安琪拉教妲己分布式限流
安琪拉教妲己分布式限流 在系统设计中,限流是保障系统高可用的一种常规手段,同样的手段还有熔断.服务降级等等,此篇文章作为一个开端,是<安琪拉教妲己分布式系统设计>的第一篇 妲己:听说最近你 ...
- 安琪拉教鲁班学算法之动态规划
<安琪拉与面试官二三事>系列文章 一个HashMap能跟面试官扯上半个小时 一个synchronized跟面试官扯了半个小时 <安琪拉教鲁班学算法>系列文章 安琪拉教鲁班学算法 ...
- 安琪拉教百里守约学并发编程之多线程基础
<安琪拉与面试官二三事>系列文章 一个HashMap能跟面试官扯上半个小时 一个synchronized跟面试官扯了半个小时 <安琪拉教鲁班学算法>系列文章 安琪拉教鲁班学算法 ...
- 安琪拉教鲁班学堆排序
<安琪拉与面试官二三事>系列文章 一个HashMap能跟面试官扯上半个小时 一个synchronized跟面试官扯了半个小时 <安琪拉教鲁班学算法>系列文章 安琪拉教鲁班学算法 ...
- 安琪拉教鲁班学算法之BFS和DFS
安琪拉教鲁班学算法之BFS和DFS <安琪拉与面试官二三事>系列文章 一个HashMap能跟面试官扯上半个小时 一个synchronized跟面试官扯了半个小时 <安琪拉教鲁班学算法 ...
- python文本筛选html_Python使用正则表达式去除(过滤)HTML标签提取文字功能
正则表达式是一个特殊的字符序列,可以帮助您使用模式中保留的专门语法来匹配或查找其他字符串或字符串集. 正则表达式在UNIX世界中被广泛使用. 下面给大家介绍下Python使用正则表达式去除(过滤)HT ...
- 懒人精灵ocr文字查找工具的使用
今天介绍一下懒人精灵ocr功能使用, 下面是整个流程如果有什么不懂可以加群785554238,里面有最新的版本和相关例子脚本 1.先从此处下载安装包 https://share.weiyun.com/ ...
最新文章
- 机器学习基础专题:随机变量
- 判断一个变量是不是指针
- 博客开通了....激动 呵呵
- 2022年十大科技应用趋势 | 万字报告PDF
- docker版本Mysql安装
- Python基础知识(1)简介
- http状态码批量查询工具V2.0
- 大一java怎么学好_是否应该学习第二门语言,学那个比较合适。
- 对文式编程的一些误解
- echarts 动态设置y轴单位_Recharts动态设置y轴的最大值最小值
- Python爬取房天下二手房信息
- vue等单页面应用及其优缺点
- tecplot无法处理高版本fluent导出的Ensight格式
- 在剪贴板上有大量信息,是否保留其内容, 以便此后粘贴到其他程序中? VBA 对策
- 推荐系统[九]项目技术细节讲解z4:向量检索技术工程上实践,曝光去重实践以及检索引擎该如何选择:支撑亿级索引、5毫秒级的检索[elasticsearch、milvus]
- impala shell
- vue 获取元素宽高
- 刺激战场国际服至暗之夜僵尸模式通关技巧:不用卡点也可以?
- vue .sync 用法
- 【点云3D目标检测】IA-SSD报错:Expected isFloatingType(grads[i].scalar_type()) to be true, but got false.