^ 匹配字符串的开头
$ 匹配字符串的结尾(允许尾部换行符)
. 匹配除换行符以外的任何字符
[...] 匹配括号中列出的任何字符。如果第一个字符是'^',这将匹配除括号以内的其他任何字符。
您可以使用“-”字符作为在“[A-Z0-9]”中选择字符范围。括号中其他字符将丢失他们的特殊含义,除了“\”。
* 允许前面的文字或组0次或者多次重复;
+ 允许1次或者多次重复;
? 允许0次或者1次重复;
{n,m} 允许 n 到 m 次重复
{n} 只允许n次重复
( ) 对子模式进行分组,并创建一个捕获组。该组捕获的子字符串将被单独存储。
(?: ) 将子图案分组,而不创建捕获组
\ 转义任何字符,将其视为字符。
请注意:一些宿主语言,如HDevelop和C/C++已经使用了反斜杠作为一个普通的空白角色。
在这种情况下,“\\ .”匹配字符点,而“\\\\”匹配字符反斜杠。
此外,还有一些特殊代码(大写每个表示否定的版本):
\d,\D 匹配一个数组
\w,\W 匹配字母、数字或下划线
\s,\S 匹配空白字符
\b,\B 匹配单词边界
如果指定的表达式在语法上不正确,您将收到一条错误消息,指出控制参数2的值是错误的。
如果设置了set_system('do_low_error', 'true'),则会在消息框中显示其他详细信息。
此外,您可以通过为表达式传递字符串元组来设置一些选项。
在这种情况下,第一个元素用作表达式,每个附加元素都被视为一个选项。
ignore_case': 执行不区分大小写的匹配
'multiline': "^"和"$"匹配各行的开始和结束
'dot_matches_all': 允许 '.' 字符也能匹配换行符
'newline_lf', 'newline_crlf', 'newline_cr': 指定输入数据中换行符的编码。
默认情况下,在Windows系统上使用CR/LF,在类似Unix的系统上使用 LF。
参考例子:
- tuple_regexp_match ('abba', 'ab*', Matches)
- tuple_regexp_match ('abba', 'ba*', Matches)
- tuple_regexp_match ('abba', 'b+a*', Matches)
- tuple_regexp_test ('ababab', '(ab){3}', NumMatches)
- tuple_regexp_test ('abababa', '(ab){3}', NumMatches)
- tuple_regexp_test ('abababa', '^(ab){3}$', NumMatches)
- tuple_regexp_replace ('abba', 'b*', 'x', Result)
- tuple_regexp_replace ('abba', 'b', 'x', Result)
- tuple_regexp_replace ('abba', ['b','replace_all'], 'x', Result)
复制代码
|