EduEditer 正则表达式补充说明
EduEditer 正则表达式遵循正则表达式一般的规则, 可自行查看相关知识。
一、表达式有如下局限性。
不支持跨段落查询,查询仅限于段落内进行。一般用 \r 来表示段落符,EE 中暂时不支持。同样也不支持换页符、分节符等查询。但换行符除外。另外 \t 表示制表符 Tab ,\n 表示换行符。
二、替换
替换中可以使用引用。引用可以用 ∖0∖1∖3⋯∖9 表示,超过 9 的引用不支持。这里 \0 表示整个查询到的内容。 \1 \2 等表示第一子项,第二子项等。
查询字符串中 " \" 具有特殊意义。用两个 \\表示一个 \
替换中还可以用 \t 和 \n
三、大小写转换
可按如下方式, 通过替换, 改变英文字符的大小写状态。
\U \L 表示从这里开始的英文字符转换为大写 (\U) 或者小写(\L),用 \E 表示结束
\u \l 表示,把此位置后面的一个字符转换为 大写 ( \u) 或小写( \l) (注:这里 1 为 L 的小写,不是阿拉伯数字 1)
如,如下方法可将所有英文单词的首字母改为大写
查找 \b[a-zA-z].+ \b
替换为 \u \0
四、查询和替换对话框
查询对话框如下:
如果你通过查询对话框先查询到内容, 然后看情况再想替换, 可以转到替换对话框, 可不填写查询内容, 而是只填写替换表达式后替换即可, 如下:

注:通过查询选到的内容和手动拖选的内容有区别的, EE 只会替换查询到的内容。
五、其他
文档中若有当前选择,而且是手动选择(而不是通过搜索自动搜索到的),将会仅在选定文字范围内进行搜索或替换。
其他相关问题,看情况修改和补充。
六、常用的元字符:
注:下表中标有【EE】 的项,其含义和普通正则表达式不同, EE 特别定义或改变用途
元字符 | 功能说明 |
. | 匹配除 " ∖ n" 之外的任何单个字符,若要匹配包括 " ∖ n" 在内的任意字符,需使用诸如 "[ \s \S]" 之类的模式 |
∧ | 匹配输入字符串的开始位置,不匹配任何字符,要匹配 "^" 字符本身,需使用 " ∖ ^ |
$ | 匹配输入字符串结尾的位置,不匹配任何字符,要匹配 "$" 字符本身,需使用 "\$ |
⋆ | 零次或多次匹配前面的字符或子表达式 ,"*" 等效于 "{ 0 , } " |
+ | 一次或多次匹配前面的字符或子表达式,等效于 "{1, }",如 "a+b" 可以匹配 "ab"," aab", "aaab", ... |
? | 零次或一次匹配前面的字符或子表达式,等效于 "{0,1}",如 "a[cd]?" 可以匹配 "a ", "ac", "ad" 当此字符紧随任何其他限定符 "*", "+", "?", "{n}", "{n, }", " {n, m}" 之后时,匹配模式是 "非贪心的 "。 " 非贪心的 " 模式匹配搜索到的,尽可能短的字符串,而默认的 "贪心的 "模式匹配搜索到的,尽可能长的字符串。如,在字符串 "oooo" 中,"o+?" 只匹配单个 "o",而 "o+" 匹配所有 "o |
| | 将两个匹配条件进行逻辑 "或 "(or) 运算, 如正则表达式 "(him|her)" 匹配 "it belongs to him" 和 "it belongs to her",但是不能匹配 "it belongs to them. |
\x | 后面跟两个16 进制字符 (1-9a-f) 字符来表示一个字符码,比如 \x20 表示一个空格 |
\u | 后面跟四个16进制字符(1-9a-f)字符来表示一个字符码,比如 \u0020 表示一个空格 |
\w | 匹配字母或数字或下划线,任意一个字母或数字或下划线,即 Az,az,0∼9 ,_中任意一个 |
\W | 匹配任意不是字母,数字,下划线的字符 |
\s | 匹配任意的空白符,包括空格,制表符,换页符等空白字符的其中任意一个,与 ”[ \f \n \r \t \v]" 等效 |
\S | 匹配任意不是空白符的字符,与 "[^\f \n \r \t \v]" 等效 |
\d | 匹配数字, 任意一个数字, 0 ~9 中的任意一个, 等效于 "[0-9] |
\D | 匹配任意非数字的字符, 等效于 "[^0-9] |
\b | 匹配一个字边界,即字与空格间的位置,也就是单词和空格之间的位置,不匹配任何字符, 如, "er \b" 匹配 "never" 中的 "er",但不匹配 "verb" 中的 "er"; |
\B | 非字边界匹配,"er \B" 匹配 "verb" 中的 "er",但不匹配 "never" 中的 "er |
\f | 【EE】原本是垂直换页符,EE 中改变了其用途,用来表示公式行的开始位置。(公式行末尾为 \n) |
\n | 匹配一个换行符,等价于 " \x0a"。段落中部可以存在 \n,公式行中部不可出现,末尾有 \n |
\r | 【EE】匹配一个回车符 |
\t | 匹配一个制表符, 等价于 " \x09" |
\p | 【EE】EE 特别增加, 用来表示段落的开始位置。(段落末尾为回车符 \r) |
\v | 【EE】原本是垂直制表符,EE 中改变了其用途,用来指一个段落标签或项目符号。结合 \p,可用 \v \p 指段落标签, \p \v 指项目符号, \v \p \v 指同时具有段落标签和项目符号 |
\cx | 匹配 ”×” 指示的控制字符,如, \cM匹配 Control-M 或回车符, ” x” 的值必须在 "A-Z ”或 “a-z” 之间,如果不是这样,则假定 c 就是 “c” 字符本身 |
{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" 是非负整数,其中 n<=m,匹配至少 n 次,至多 m 次,如 ," o {1,3}" 匹配 " fooooood" 中的头三个 o, ’o{0,1}’ 等效于 ’o?’, 注意, 不能将空格插入逗号和数字之间 如 "ba{1,3}" 可以匹配 "ba" 或 "baaa |
x|y | 匹配 "x" 或 "y",如 ,"z | food" 匹配 "z" 或 "food" "(z | f ) ood" 匹配 "zood" 或 "food |
| [xyz] | 字符集,匹配包含的任一字符,如,"[abc]"匹配 "plain" 中的 "a"; |
| [^xyz] | 反向字符集,匹配未包含的任何字符,匹配除了 "xyz" 以外的任意字符,如,"[^abc] "匹配 "plain" 中的 "p |
| [a-z] | 字符范围,匹配指定范围内的任何字符,如,"[a-z]"匹配"a"到"z"范围内的任何小写字母 |
[^a-z] | 反向范围字符,匹配不在指定的范围内的任何字符,如,"[^a-z]" 匹配任何不在 "a" 到 " z " 范围内的任何字符 |
( ) | 将 ” ( “ 和 ” ) ” 之间的表达式定义为 “ 组 "group,并且将匹配这个表达式的字符保存到一个临时区域,一个正则表达式中最多可以保存 9 个,它们可以用 " \1" 到 " \9" 的符号来引用 |
七、2023 年 6 月 28 日 修改部分:
一是换了界面:不再是上面的对话框,查找工具栏会出现再文档右上角,增加了就按文字类型范围查找。比如只在 “数学类” 文字中查找内容。
二是,在正则表达式中允许使用 \r 来表示段落符,但仍有限制,查询依旧以段落为单位进行逐段查询, 不能跨段。比如某段落的最后翼字符是 "A", 下一个段落开始字符是 "B", 不能用 "A \rB" 这种方式查找。
允许 \r 的主要目的是为了定位段落的开始和结束处。
八、2023 年 7 月 8 日 修改部分
到此,查找与替换部分基本编写完成。与上一版本有所变化的有,查找对话框中的收藏栏已可以使用了。收藏栏中收藏的是 “查找字符串” 和 “匹配选项”,用如下字母表示具体的匹配选项:
C 区分大小写,W 区分全角半角,E 完整匹配单词边界,R 正则表达式,横线 - 表示相应的选定位没有被选择(如下图)
双击特定收藏项,可以把该项重写到上方查找框,并设置相应的匹配选项。
收藏栏可能对物理老师很有用,可用于查找数量单位,批量选定后,执行【空格 +U】进行扶正。
在数量单位中,常用平方和立方。特设定用如下方法查找平方、立方等:
\x02 上标平方, \x03 上标立方, \x04 上标四次方。
除了以上特殊指定外,可用 \x08 查找其余的所有公式对象。
这里, \x08 指,字符为 ASCII 字符集中字符码为 8 的字符。也可以使用 Unicode(万国码)形成表示: \u0008 ,但显然,这样写有些不便,建议使用 \x 方式表示。
可以用 \x0E 查找嵌入的画布和图片。
九、2023 年 10 月 17 日 修改部分:
6月30日的版本加过 \r,但段落前后都加相同的 \r 引起搜索上的一些问题(比如在首尾截选中),本次版本做了适当调整。
用 \p特指段落开始位置, \r平特指段尾(段落符)。
比如,段落内容是 “中华人民共和国”,那么可以当作如下字符串来理解:
\p 中华人民共和国 \r
但它实际上是以 “ \p \n 中华人民共和国 \n \r" 的形式供搜索 (下面有说明)
类似地,在公式行中,用 \f 特指行首,用 \n 指行尾。比如,可以用 \f.+∖n 来选定所有公式框中的内容
|\n指换行符。当用户在查找框中输入 \p, \r, \f, EE 会把他们改为:
\p → \r \n
\r→\n∖r
\f → \f \n
这样,正则表达式 “ ∖ p 中华人民共和国 ∖r″ 的最终正则表达式将变为:
\r \n 中华人民共和国 \n \r
“ \f 中华人民共和国 \n" 实际上是:
\f \n 中华人民共和国 \n
总之,用户需要知道的是,在 EE 中的查询,任何文字内容都位于两个 ∖n 之间。这主要是考虑到对段落或文字行 ^(行头) 和 $ (行尾) 操作符仍然能起作用。
十、段落标签和项目符号
本次版本新增 ∖v 来表示段落标签或项目编号 (或符号,或项目标识)。
当 \v 表示段落标签的时候,应将 \v写在 \p 之前,如 \V\p ;否则,若为项目编号之类的,应写在 \p 之后,如 \p \v 。这样,如下表达式用来选择所有既有段落标签,又有项目编号的段落内容:
\v \p \ v.+ \r
十一、改变大小写
上一篇:EduEditer 安装与部署办法 下一篇:没有了