正则 ?<= 和 ?= 用法,范例

 

(exp) 匹配exp,并捕获文本到自动命名的组里
(?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp)
(?:exp) 匹配exp,不捕获匹配的文本
位置指定
(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
(?!exp) 匹配后面跟的不是exp的位置
(?<!exp) 匹配前面不是exp的位置

-----------------------------------------------------------------------------------------------------------------------------------

 

例子:

测试1:

假如有下面一串经纬度str,小数点后长度<16,长度不一。

{"lat":"30.769432950801377","lng":"103.9813772899"},{{"lat":"30.6697164","lng":"103.9816054999999947"}

测试1:匹配经纬度末尾4位(引号前4位),以便干掉。

\d{4}(?=\")
-----------------------------------

  共找到 4 处匹配:
  1377
  2899
  7164
  9947

 

测试2:

{"lat":"30.769432950801377","lng":"103.9813772899"},{{"lat":"30.6697164","lng":"103.9816054999999947"}

经纬度保留小数点后6位,匹配出多余的数字以便干掉:(小数点后第七位到末尾的数字)

表达式为:

(?<=\.\d{6})\d{0,10}(?=\")
---------------------------------

  共找到 4 处匹配:
  950801377
  2899
  4
  4999999947

 

posted @ 2018-05-25 10:52  君子笑而不语  阅读(1089)  评论(0编辑  收藏  举报