## 正则表达式构造

在搜索和片段切分规则中使用的是 Java 支持的正则表达式(或简称为 regex)。如果你需要更多的信息，请参阅 http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html。查阅下面提到的附加参考和范例。

### 标志

### 字符

### 引用

### 为 Unicode 字块和分类准备的类

### 字符分类

### 预定义字符类

### 边界匹配

### 贪婪量词

### 勉强 (非贪婪) 量词

### 逻辑操作符

### 正则表达式的工具和使用实例

### 构造……

### ……匹配下列内容：

### 标志

`(?i)` | 激活大小写不敏感匹配（缺省模式为大小写敏感）

### 字符

`x` | 字符 x, 除了以下内容……
`\uhhhh` | 以十六进制数值表示的字符<t0>0x</t0>hhhh
`\t` | 制表符 (<t0>'\u0009'</t0>)
`\n` | 新行 (换行) 字符 (<t0>'\u000A'</t0>)
`\r` | 回车字符(<t0>'\u000D'</t0>)
`\f` | 换页符 (`'\u000C'`)
`\a` | 报警 (响铃) 字符 (`'\u0007'`)
`\e` | 转移字符 (`'\u001B'`)
`\c` x | 对应x的控制字符
`\0` n | 后跟八进制数值的字符 `0` n (0 `<=` n `<=` 7)
`\0` nn | 后跟八进制数值的字符 `0` n (0 `<=` n `<=` 7)
`\0` mnn | 后跟八进制数值的字符 `0` mnn (0 `<=` m `<=` 3, 0 `<=` n `<=` 7)
`\x` hh | 以十六进制数值表示的字符`0x` hh

### 引用

`\` | 什么都不是，但对以下字符进行引用。当你需要对 `!$()*+.<>?[\]^{|}` 进行匹配时需要使用它。
`\\` | 例如，这是反斜杠字符
`\Q` | 什么都不是，但是引用 <t0>\E</t0>之前的所有字符
`\E` | 什么都没有，但是结束由 `\Q`开始的引用

### 为 Unicode 字块和分类准备的类

``\p{InGreek}`` | 希腊字块中的字符 (简单地使用 block)
``\p{Lu}`` | 大写字母 (简单地使用 category)
``\p{Sc}`` | 货币符号
``\P{InGreek}`` | 任何不在 Greek 字块中的字符 (取反)
``[\p{L}&&[^\p{Lu}]]`` | 除大写字母之外的所有字母 (减法)

### 字符分类

`[abc]` | <t0>a</t0>、 <t1>b</t1>或者 <t2>c</t2> (简单分类)
`[^abc]` | 除了 <t0>a</t0>、<t1>b</t1> 或 <t2>c</t2> (取反)之外的任何字符。
`[a-zA-Z]` | <t0>a</t0> 到 <t1>z</t1> 并 <t2>A</t2> 到 <t3>Z</t3>, 包含（范围）

### 预定义字符类

`.` | 任何字符 （除了行结束符之外）
`\d` | 单个数字： `[0-9]`
`\D` | 一个非数字字符： <t0>[^0-9]</t0>
`\s` | 一个空白字符： `[ \t\n\x0B\f\r]`
`\S` | 一个非空字符： <t0>[^\s]</t0>
`\w` | 一个单词字符： <t0>[a-zA-Z_0-9]</t0>
`\W` | 一个非单词字符： <t0>[^\w]</t0>

### 边界匹配

`^` | 行首
`$` | 行尾
`\b` | 单词边界
`\B` | 非单词边界

### 贪婪量词

该符号导致尽可能进行匹配。例如，`a+` 将会匹配`aaabbb`中的`aaa`
X`?` | X一次或根本不出现
X`*` | X出现0次或多次
X`+` | X出现1次以上

### 勉强 (非贪婪) 量词

该字符将导致尽可能少地进行匹配。例如： `a+?` 将会匹配`aaabbb`中的 `a`
X`??` | X一次或根本不出现
X`*?` | X出现0次或多次
X`+?` | X出现1次以上

### 逻辑操作符

XY | X 后面紧跟一个Y
X`|`Y | X 或 Y
`(`XY`)` | XY 作为单个组出现

## 正则表达式的工具和使用实例

有许多用于开发和测试正则表达式的交互工具。他们都几乎按照同样的模式（见下面的用于火狐浏览器的伊纳形式插件）:正则表达式（上面的条目）分析了搜索文本（中间的文本框），进行点击，显示结果文本框。
参见 Windows,Linux, Mac, FreeBSD 版本的独立工具 The Regex Coach ，它几乎与上面的例子一模一样。
可在 OmegaT 内（参见 选项 > 片段分割）找到非常有用 regex 实例集合。在搜索译法记忆时，下列表所包含的表达式可能会有用:

正则表达式 | 查找以下内容：
(\b\w+\b)\s\1\b | 双字
[\.,]\s*[\.,]+ | t 逗号及句点的组合
\. \s$ | 额外的空格，后面紧跟着句点和行尾
\s+a\s+[aeiou] | 英语：单词，以元音开始，可以是 "an" 而不能是 "a"
\s+an\s+[^aeiou] | 英语：如上一条表达式，但辅音（"a", 而不是 "an")
\s\s+ | 一个以上空格
\.[A-Z] | 在句点和新句子头部之前缺失了一个空白

法律声明 | 首页 | 内容索引