regex如何在多行搜索中查找和替换多个实例
我有以下案文:regex如何在多行搜索中查找和替换多个实例,regex,sublimetext3,Regex,Sublimetext3,我有以下案文: vyāsa-prasādāc chrutavānZKL etad guhyam ahaṁ paramZKL yogaṁ yogeśvarāt kṛṣṇātZKL sākṣāt kathayataḥ svayamPXY rājan saṁsmṛtya saṁsmṛtyaZKL saṁvādam imam adbhutamZKL keśavārjunayoḥ puṇyaṁZKL hṛṣyāmi ca muhur muhuḥPXY tac ca saṁsmṛtya saṁsmṛty
vyāsa-prasādāc chrutavānZKL
etad guhyam ahaṁ paramZKL
yogaṁ yogeśvarāt kṛṣṇātZKL
sākṣāt kathayataḥ svayamPXY
rājan saṁsmṛtya saṁsmṛtyaZKL
saṁvādam imam adbhutamZKL
keśavārjunayoḥ puṇyaṁZKL
hṛṣyāmi ca muhur muhuḥPXY
tac ca saṁsmṛtya saṁsmṛtyaZKL
rūpam aty-adbhutaṁ hareḥZKL
vismayo me mahān rājanZKL
hṛṣyāmi ca punaḥ punaḥPXY
yatra yogeśvaraḥ kṛṣṇoZKL
yatra pārtho dhanur-dharaḥZKL
tatra śrīr vijayo bhūtirZKL
dhruvā nītir matir mamaPXY
现在我想:
vyāsa-prasādāc chrutavānZKL
etad guhyam ahaṁ paramZKL
yogaṁ yogeśvarāt kṛṣṇāt sākṣāt kathayataḥ svayamPXY
rājan saṁsmṛtya saṁsmṛtyaZKL
saṁvādam imam adbhutamZKL
keśavārjunayoḥ puṇyaṁ hṛṣyāmi ca muhur muhuḥPXY
tac ca saṁsmṛtya saṁsmṛtyaZKL
rūpam aty-adbhutaṁ hareḥZKL
vismayo me mahān rājan hṛṣyāmi ca punaḥ punaḥPXY
yatra yogeśvaraḥ kṛṣṇoZKL
yatra pārtho dhanur-dharaḥZKL
tatra śrīr vijayo bhūtir dhruvā nītir matir mamaPXY
我想把每一节的最后两行合并起来
我正在用崇高的文字:
find: (?s)ZKL\n((?!.*ZKL).*PXY)
replace: \1
(?s) for multi line search
ZKL\n is ZKL and new line
((?!.*ZKL) to search from ZKL which is before PXY otherwse there are many ZKL
.*PXY everything till PXY
以上内容将仅替换最后一个实例。如何看到四节中的所有四个实例都被替换
我有很多这样的诗节这个正则表达式似乎很管用。我不太清楚SublimiteText3,你能试试这个正则表达式吗
ZKL\n(?=.*\n\n)
并将其替换为一个单独的空间
注意:我在最后一段后插入了两行新行,这样正则表达式也适用于最后一段
编辑:
如果您想将PXY行与上面的两行进一步组合,可以使用ZKL\n
并将其替换为空格
但如果您想将所有四行合并为一行,最后删除ZKL和PXY,您可以使用这个正则表达式
(ZKL|PXY(\n))\n
并用\2\2
您可以尝试以下方法:
ZKL\n(?=.*PXY\n\n)
它匹配ZKL,后跟一个新行,然后检查是否有一堆非新行字符,后跟PXY,后跟2个新行
您可以将其替换为一个空格
请注意,要在最后一节执行此操作,您需要在文件末尾至少有两行新行
此正则表达式应完成以下工作:
(.+ZKL\n.+ZKL\n.+ZKL)\n(.+PXY)
正则表达式匹配任意数量的任意字符
到'ZKL\n'
。此操作重复三次,并存储在组1
中
然后,它匹配任何数量的字符,最多为“PXY”
,该字符存储在组2中
现在替换为:
$1$2
或某些语言:\1\2
这将连接最后两行
您应该设置global
标志。在连接最后两行之后,现在我还想将PXY上方的行与上面的两行连接起来PXY@SanthoshYedidi你能告诉我第一节你希望得到什么吗?@ssc-hrep3@Santhosh:我已经更新了我的答案,以满足你在另一个答案的评论中提到的要求。希望有帮助。如果您还面临任何问题或有任何疑问,请告诉我。