打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
onigmo正则表达式大全

Onigmo是一个高性能的正则表达式引擎,它支持多语言,包括CRubyObjective-C。这个引擎的设计目的是在运行时提供正则表达式匹配的功能。以下是Onigmo正则表达式的大全,让我们一起来了解一下吧。

正则表达式基础

1.
基本语法

正则表达式由普通字符(例如字符 a z)和特殊字符(元字符)组成。元字符可以表示一组字符,如单词字符 [a-z],或表示要匹配的字符次数,如 {1,3}。下面是一些常用的元字符:

· .
:匹配单个字符(除了换行符)
· [...]
:字符集合,匹配方括号内的任意一个字符
· [^...]
:排除字符集,匹配未列出的任意字符
· \d
:数字字符
· \D
:非数字字符
· \s
:空白字符
· \S
:非空白字符
· \w
:单词字符
· \W
:非单词字符
· |
:或操作符
· ()
:分组操作符
· ^
:匹配行首
· $
:匹配行尾

2.
匹配次数

正则表达式中的元字符可以用于指定匹配次数。下面是一些常用的匹配次数元字符:

· *
:匹配前一个字符 0 或多次
· +
:匹配前一个字符 1 或多次
· ?
:匹配前一个字符 0 1
· {n}
:匹配前一个字符恰好 n
· {n,m}
:匹配前一个字符至少 n 次,最多 m
· {n,}
:匹配前一个字符至少 n

3.
字符类

字符类是一组字符的缩写形式,它们可以帮助您更快地编写正则表达式。以下是一些常用的字符类:

· \d
:数字字符([0-9]的缩写)
· \D
:非数字字符([^0-9]的缩写)
· \w
:单词字符([a-zA-Z0-9_]的缩写)
· \W
:非单词字符([^a-zA-Z0-9_]的缩写)
· \s
:空白字符([ \t\r\n\f]的缩写)
· \S
:非空白字符([^ \t\r\n\f]的缩写)

高级正则表达式技巧

1.
捕获组

使用括号可以定义捕获组,捕获组允许您引用它们所匹配的文本。例如,下面的正则表达式将匹配字符串 "hello world" 并将单词 "hello" 包含在第一个捕获组中:

```/(hello) world/```

捕获组在匹配过程中保存匹配结果,您可以在替换文本中引用这些结果。在下面的示例中,我们将使用 $1 表示第一个捕获组,将 "hello" 替换为 "hi"

```"hello world".gsub(/(hello) world/, '\1i universe')```

最终输出结果为 "hi universe"

2.
贪婪和非贪婪匹配

正则表达式默认是贪婪匹配,它会匹配尽可能多的字符。例如,给定字符串 "a123b",正则表达式 /\d+/ 将匹配整个 "123"。如果您想要非贪婪匹配,可以使用 ? 元字符。例如,/a.+?b/ 将匹配 "ab",而不是整个字符串 "a123b"

3.
零宽度断言

零宽度断言是在匹配开始和结束位置时使用的特殊元字符。它们只是在匹配中考虑文本边界,而不实际匹配字符。下面是一些常用的零宽度断言元字符:

· ?=
:正向前视断言
· ?
!:负向前视断言
· ?<=
:正向后视断言
· ?<!
:负向后视断言

4.
嵌入式选项

Onigmo
支持嵌入式选项,使您能够在正则表达式中启用或禁用选项。以下是一些常用的嵌入式选项:

· (?i)
:忽略大小写
· (?m)
:多行模式
· (?x)
:忽略空白和注释
· (?-i)
:关掉忽略大小写模式

结论

在进行字符串匹配时,使用正则表达式非常方便和高效。Onigmo正则表达式引擎是一个高性能的库,支持多语言,可以满足您对字符串处理的各种需求。学习和掌握正则表达式,将会使您编写更加高效和精准的代码。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
正则(转)
正则表达式
正则表达式从入门到精通 - zjcxc(邹建)的专栏
(88) 正则表达式 (上) / 计算机程序的思维逻辑
Python 正则表达式(re模块)操作指南
三+五℃--正则表达式(regular?expression)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服