正则表达式参考 |
正则表达式是定义用于搜索和匹配的模式的强大方法。 Beyond Compare 允许您在搜索文本时和指定分类文本的规则时使用正则表达式。 Beyond Compare 中的正则表达式支持是 Perl 兼容正则表达式(PCRE)语法的子集。 虽然正则表达式可能是一个复杂的主题,但有几个很好的相关资源。 其中一个资源是一本名为精通正则表达式的书。 另一个优秀的资源是 Steve Mansour 的正则表达式之道,可以在以下位置找到其副本: www.scootersoftware.com/RegEx.html 正则表达式由两种类型的字符组成: 普通字符和元字符。 在执行匹配时,元字符具有特殊含义,控制如何进行匹配并用作通配符。 普通字符始终仅与自身匹配。 要与元字符匹配,请转义它,在它前面加上反斜杠"\"。 有多种类型的元字符,每种都在下面详细说明。 元字符 - 转义序列
元字符 - 预定义类 预定义字符类匹配某些字符子集中的任何字符。 以下类已为您定义。
您还可以通过将一组字符括在方括号"[]"中来构造自己的字符类。 预定义类(除了".")可以在方括号内使用,如果两个字符之间出现短划线"-",它表示一个范围。 因此 [a-z] 将表示所有小写字母,[a-zA-Z] 将表示小写和大写字母。 要将"-"作为类的一部分包含,请将其放在字符串的开头或结尾。 如果方括号内的第一个字符是插入符号"^",则该类表示除指定字符之外的所有字符。 [^a-z] 匹配任何不是小写字母字符的字符。 元字符 - 替代项 通过在两组项目之间放置一个"|",可以表示替代匹配。 a|b 将匹配 a 或 b。 ab|cd 将匹配"ab"或"cd",但不匹配"ac"。 |将字符从模式分隔符("("、"["或模式的开头)分组到自身,然后再到模式的结尾。 替代项可以放在括号"()"中,以明确要匹配的内容,如 a(bc|de)f。 替代项从左到右匹配。 bey|beyond 将匹配 bey,即使字符串是"beyond"。 元字符 - 位置 以下元字符控制匹配可以出现在行中的位置。 注意:\A 和 \Z 分别匹配文本的开始和结束,但由于 Beyond Compare 以逐行方式执行搜索,因此它们与 ^ 和 $ 具有相同的效果。
元字符 - 迭代器 正则表达式中的任何内容后面都可以跟一个迭代器元字符,它指的是它前面的项目。 有两种迭代器 - 贪婪型和非贪婪型。 贪婪迭代器尽可能多地匹配,非贪婪迭代器尽可能少地匹配。 贪婪型:
非贪婪型:
元字符 - 子表达式 括号"()"也可用于将字符分组以与迭代器和反向引用(下面讨论)一起使用。 (bey){4,5} 将匹配"bey"的 4 到 5 个实例。 (abc|[0-9])* 将匹配"abc"和数字 0 到 9 的任意组合(例如"abc5"、"679abc"和"abc77abc")。 元字符 - 反向引用 在"()"中匹配的每个字符序列将被保存为子表达式,您可以稍后使用 \1 到 \9 引用它,从左到右引用子表达式。 b(.)\1n 将匹配"been"和"boon",但不匹配"bean"、"ben"或"beeen"。 修饰符 修饰符允许从那一点开始更改匹配行为。 如果修饰符包含在子表达式中,它只影响该子表达式。 使用 (?i) 和 (?-i) 控制匹配的大小写敏感性。 示例:
另请参阅 |