Rails正则提取问题:获取括号内内容及空格后字符串
正则提取解决方案
针对你提到的字符串[VA03] SOME_ERROR_CODE,以下是两个问题的具体解决方法:
1. 提取不含方括号的VA03
有两种实用方式:
- 捕获组方式:用正则表达式
\[([^\]]+)\]- 说明:
\[匹配左方括号,([^\]]+)捕获左括号后到右括号前的所有非右括号字符(就是你要的内容),\]匹配右方括号。提取时取捕获组1的结果即可。
- 说明:
- 零宽断言方式:用正则表达式
(?<=\[)[^\]]+(?=\])- 说明:
(?<=\[)确保前面是左方括号,[^\]]+匹配中间内容,(?=\])确保后面是右方括号。这个正则直接匹配到的就是不带括号的VA03。
- 说明:
2. 提取空格后的SOME_ERROR_CODE
同样有两种简单方法:
- 捕获组方式:用正则表达式
\s+(\S+)- 说明:
\s+匹配一个或多个空格,(\S+)捕获后面所有非空白字符(即错误码),取捕获组1的结果即可。
- 说明:
- 零宽断言方式:用正则表达式
(?<=\s)\S+- 说明:
(?<=\s)确保前面是空格,\S+匹配后面的非空白字符,直接得到目标内容。
- 说明:
一次性提取两个内容
如果想一次匹配出两个目标,推荐用整体正则:^\[([^\]]+)\]\s+(\S+)$
- 捕获组1对应
VA03,捕获组2对应SOME_ERROR_CODE,一次匹配就能拿到两个结果,效率更高。
内容的提问来源于stack exchange,提问作者AishiValas
相关产品推荐
相关产品推荐

