美文网首页
FME 正则表达式的用法

FME 正则表达式的用法

作者: 紫菜_d3a0 | 来源:发表于2018-10-24 15:23 被阅读0次

    正则表达式,又称规则表达式,通常被用来检索、替换那些符合某个模式(规则)的文本。FME 也支持正则表达式,相关的 FME 转换器包括 Tester,TestFilter,StringSearcher,StringReplacer 等。FME 还提供 Regular Expression Editor,如下图所示:

    这里我们就以此介绍上图中正则表达式的用法。

    [abc]

    表示匹配字符 a,字符 b,或字符 c。不需要 abc 是连续的。如下图:

    [^abc]

    与 [abc] 正好相反,表示匹配非 a,b,c 的任意字符。如下图:

    [a-z]

    表示匹配 a-z 的任意字符,或者通俗点说,只要包含小写字母就会匹配。如下图:

    [a-zA-Z]

    表示匹配 a-z 以及 A-Z 的任意字符,通俗点说,就是匹配所有的字母(含大写与小写),也可以写成 [A-Za-z],两者是等价的。

    ^

    匹配输入字符串的开始位置。^ 字符在方括号中使用,表示不接受方括号中的字符集,如 [^abc]。

    要匹配 ^ 字符本身,请使用 \^

    $

    匹配输入字符串的结尾位置。即从输入字符串的结尾搜索,看是否符合正则表达式。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$

    上述情况中,如果正则表达式为 (string)$,那么匹配不成功。

    .

    匹配除换行符 \n 之外的任何单字符(含空格)。要匹配 .,请使用 \.

    \s

    匹配任何空白字符,包括空格、制表符、换页符等等。如下图,最后一个匹配项为制表符。

    \S

    匹配任何非空白字符。使用上图中同样的字符串,匹配结果如下(最后竖线部分为光标闪烁,并没有 | 字符):

    \w

    匹配任何字符(含字母、数字、下划线)。

    \d

    匹配任何数字。

    (a|b)

    指明两项之间的一个选择。要匹配 |,请使用 |。

    a?

    匹配前面的子表达式零次或一次。例如,do(es)? 可以匹配 "do" 、 "does" 中的 "does" 、 "doxy" 中的 "do" 。? 等价于 {0,1}。

    a*

    匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。

    a+

    匹配前面的子表达式一次或多次。例如,zo+ 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。

    a{n}

    n 是一个非负整数。匹配确定的 n 次。如下图:

    对于 6,7,8 三种情况,其实是匹配了两次 a{3}。可以预想,对于 9:aaaaaaaaa 将匹配三次 a{3}。

    a{n,}

    n 是一个非负整数。表示至少匹配 n 次。如下图:

    a{0,} 等价于 a*,即匹配前面的子表达式零次或多次。

    a{n,m}

    m 和 n 均为非负整数,其中 n <= m。最小匹配 n 次,且最多匹配 m 次。如下图:

    a{3,6} 将匹配 "8:aaaaaaaa" 中的前 6 个 a。

    a{0,1} 表示匹配 a 零次或一次,其实就是匹配单个字母 a,其效果 a? 是一样的,即匹配前面的子表达式零次或一次。

    相关文章

      网友评论

          本文标题:FME 正则表达式的用法

          本文链接:https://www.haomeiwen.com/subject/dnqxtqtx.html