Java正则表达式正确,但\s无法匹配空格
\s
的介绍
上边说的是匹配空格,但是我今天爬取页面之后用正则表达式提取信息时:
用\s
去无法完成空格的匹配。
空格的种类
- 半角空格
\u0020
- 英文半角空格具有换行的效果,会出现不期望的换行现象;
- 可以通过正则表达式
\s
进行匹配
- 全角空格
\u3000
- 不可通过正则表达式
\s
进行匹配
- 不间断空格
\u00A0
- 主要用途用于禁止自动换行,在英文中主要用于避免类似**(100 KM)**这种文字被错误地分词排版成两行。
- 不可通过正则表达式
\s
进行匹配
解决方案:
我们就不要用\s
匹配,直接用unicode
编码匹配[\u3000|\u0020\u00A0]+
直接匹配三种空格。
测试: