文件中的正则表达式超过几行替换
regex in file over several lines replacing
我有这样的正则表达式:
/ requires: \[.*("Instance.model.*?").*\] /gs
我有这样的数据:
requires: [
"Instance.model.a",
"Instance.model.b",
"Instance.model.c",
"Other.mode.test",
"Instance.model.d"
],
"Instance.model.e"
我想删除这个文件里面的所有"Instance.model.?",
requires,但是给定的正则表达式只有returns最后一个条目(d)。
我怎样才能让它在 PhpStorm 中工作?
如果支持,一种选择是在回顾 *
中使用无限量词,或者在使用 Java 时使用有限量词 {0,1000}
。
(?<=^requires: \[[^\[\]]{0,1000})"Instance\.model\.[a-z]",?\r?\n
说明
(?<=
正向后视,断言左边的是
^requires: \[
匹配要求从字符串的开头后跟space
[^\[\]]{0,1000}
匹配 0 - 1000 次(您可以相应更改此值)除方括号外的任何字符
)
关闭回顾
Instance\.model\.
匹配 Instance.model.
[a-z]",?\r?\n
匹配字符 a-z、可选逗号和换行符
根据评论,最终适合您的模式(带转义点)
(?<=^ {0,8}requires: \[[^\[\]]{0,1000})"Instance\.model\.[a-zA-Z]*",?\r?\n?
我有这样的正则表达式:
/ requires: \[.*("Instance.model.*?").*\] /gs
我有这样的数据:
requires: [
"Instance.model.a",
"Instance.model.b",
"Instance.model.c",
"Other.mode.test",
"Instance.model.d"
],
"Instance.model.e"
我想删除这个文件里面的所有"Instance.model.?",
requires,但是给定的正则表达式只有returns最后一个条目(d)。
我怎样才能让它在 PhpStorm 中工作?
如果支持,一种选择是在回顾 *
中使用无限量词,或者在使用 Java 时使用有限量词 {0,1000}
。
(?<=^requires: \[[^\[\]]{0,1000})"Instance\.model\.[a-z]",?\r?\n
说明
(?<=
正向后视,断言左边的是^requires: \[
匹配要求从字符串的开头后跟space[^\[\]]{0,1000}
匹配 0 - 1000 次(您可以相应更改此值)除方括号外的任何字符
)
关闭回顾Instance\.model\.
匹配Instance.model.
[a-z]",?\r?\n
匹配字符 a-z、可选逗号和换行符
根据评论,最终适合您的模式(带转义点)
(?<=^ {0,8}requires: \[[^\[\]]{0,1000})"Instance\.model\.[a-zA-Z]*",?\r?\n?