能否使用一条正则表达式匹配并过滤如以下文本:
import 'dart:convert';
import 'dart:io';
import 'dart:math';
class Api {
static String getData = '/api/User/getMe';
}
static String name = "TbrAPiCache";
使用正则匹配到单引或者双引的内容的同时,过滤包含 import 的行,匹配到的内容如下:
'/api/User/getMe'
"TbrAPiCache"
1
8yte 2022-11-25 18:14:16 +08:00 via Android
抛个砖先
(?<!import )['"].*?['"] |
2
ETiV 2022-11-25 20:06:01 +08:00
接 LS 的改改…
(?<!import )(?=\s*)(['"]).*?(?<!\\)\1 ,用这个可以让 [赋值时字符串的单双引号成对儿出现] static String name = "TbrAPiCache'; # 双引号+单引号 = 匹配不到 static String name = "TbrAPiC\"ac'h\"\\"e"; # 前后都是双引号 = 可以匹配到 |
3
8yte 2022-11-25 21:57:12 +08:00
那我再修改一下楼上的
楼上的例子"TbrAPiC\"ac'h\"\\"e" 双斜杠在一起就不是转义引号了,所以应该匹配到倒数第二个引号 (?<!import *)(['"]).*?((?<!\\)|(?<=\\\\))\1 |
4
8yte 2022-11-25 21:58:36 +08:00
(?<!import *)(['"]).*?((?<!\\)|(?<=\\\\))\1
-> (?<!import\s*)(['"]).*?((?<!\\)|(?<=\\\\))\1 |