1
xjx0524 2015-09-16 16:19:02 +08:00
\b 匹配单词边界
| 表示括号里两种情况是 或 的关系 比如 I 和 I'm |
2
caixiexin 2015-09-16 16:47:37 +08:00
匹配的应该是类似
aBc aBc 这两种情况,第二个末尾比第一个多一个空格 |
3
imn1 2015-09-16 17:16:17 +08:00
it is 'new year'
it's 'new year' |
4
muzzy OP @xjx0524 表示括号里面的两个是或关系的话,一句话的结尾用.结束,那最后一个单词是怎么匹配到的呢。[a-zA-Z]这个与(\'[a-zA-Z]+|\b ) 也是或的关系?
|
6
rock_cloud 2015-09-16 17:51:56 +08:00
给楼主推荐一个网站 https://regex101.com/
虽然是机器解释的,不过还可以看 |
7
jadecoder 2015-09-16 18:07:23 +08:00
匹配 单引号+字母 或者 单词边界
|
8
theFool 2015-09-16 18:08:38 +08:00
|
9
Biwood 2015-09-16 18:40:40 +08:00 1
① [a-zA-Z]+: 匹配所有大小写字母
② [a-zA-Z]+(\b ):在①的所有匹配结果中匹配一个单词边界 ③ [a-zA-Z]+(\'[a-zA-Z]+|\b ):由于 \b 会把 "it's" 这种情况当成两个单词,所有优先使用 \'[a-zA-Z]+ 进行匹配,若匹配失败,再使用 \b 进行匹配 |
10
Biwood 2015-09-16 18:43:17 +08:00
接楼上,①应该是匹配连续的、一个或一个以上的大小写字母,所有 "it's" 被分成了两个
|
11
xjx0524 2015-09-16 20:32:15 +08:00
|
13
ljbha007 2015-09-16 20:35:35 +08:00
表示 小组内的或关系
|
14
Biwood 2015-09-17 10:28:00 +08:00
抱歉的跟楼主说一声,我在 9 楼和 10 楼的分析是错误的。
[a-zA-Z]+(\'[a-zA-Z]+|\b ) 这个表达式可以用算术里的乘法分配律理解,相当于匹配 [a-zA-Z]+\'[a-zA-Z]+ 或 [a-zA-Z]+\b 这两种情况,是我想复杂了, sorry ,@xjx0524 的说法是正确的 |