在正则表达式中使用'\ s'和实际空格之间的区别?

Ker*_*vvv 1 regex

我有字符串id=0515 abcdefghijk.为了只匹配0515,我创建了以下正则表达式:((?<=id=).*(?<=\s)).

我的结果是0515(包括id和字母之间的空格).

如果我将我的正则表达式更改为以下内容(用实际空格替换'\ s'),我得到的结果只是最后没有空格的数字: ((?<=id=).*(?= ))

是否可以使用实际空格而不是字符代码?或者我的正则表达式需要更多的工作?

Obs*_*Age 5

不同的是, specifically matches a space, while \s将匹配任何空白字符(\r,\n,\t,\f\v).

虽然没有什么错的正则表达式的使用空间,考虑到你只寻找数字,为什么不直接使用\d(匹配所有数字,09)?

这将显着降低你的正则表达式,并获得相同的结果,如这里所见.

希望这可以帮助!:)