如果我有一个很大的文本,并且我需要仅保留匹配的内容,我该怎么做?
例如,如果我有这样的文本:
asdas8Isd8m8Td8r
asdia8y8dasd
asd8is88n8gd
asd8t8od8lsdas
as9ea9ad8r1n88r8e87g6765ejasdm8x
并使用这个正则表达式:[0-9]([a-z])
将所有字母分组在数字后面并替换为\1
我将把所有(数字)(字母)替换为(字母)(如果我想删除其余部分并仅保留匹配的字母)?...
将此文本转换为
ImTr
y
ing
tol
earnregex
如何用分组替换此文本并删除其余文本?
如果我想删除所有但没有匹配的?
在本例中,将文本转换为:
8I8m8T8r
8y8d
8i8n8g
8t8o8l
9e9a9r1n8r7g5e8x
我可以匹配所有不匹配的吗[0-9]([a-z])
?
谢谢! :D
您可以使用以下正则表达式:
(?i-s)[0-9]([a-z])|.
用。。。来代替(?{1}$1:)
.
要删除除不匹配之外的所有内容,请使用(?{1}$0:)
用相同的正则表达式替换。
Details:
-
(?i-s)
- 内联修饰符打开不区分大小写模式并关闭 DOTALL 模式(.
不匹配换行符)
-
[0-9]([a-z])
- 一个 ASCII 数字和任何捕获到第 1 组的 ASCII 字母(稍后称为$1
or \1
来自字符串替换模式的反向引用)
-
|
- or
-
.
- 除换行符之外的任何字符。
更换详情
-
(?{1}
- start of the conditional replacement: if Group 1 matched then...
-
$1
- 第 1 组的内容(或整场比赛,如果$0
使用反向引用)
-
:
- 否则...什么都没有
-
)
- 条件替换模式结束。
![enter image description here](https://i.stack.imgur.com/v938f.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)