我有一个文本文件并使用 Notepad++。我有如下输入行(带有换行符且没有设置模式),并且想要提取之前的数字T
并以竖线分隔的形式输出数字。
输入
(1745817T OR 1745818T OR 1745820T OR 1745819T) AND NOT (1786717T)
(3406379T OR 3410183T OR 3414397T OR 3272288T OR 3348134T OR 3379438T OR 3348136T OR 3420508T OR 3420503T OR 3420511T OR 3420504T OR 3420505T OR 3420507T OR 3420512T)
输出
1745817|1745818|1745820|1745819|1786717
3406379|3410183|3414397|3272288|3348134|3379438|3348136|3420508|3420503|3420511|3420504|3420505|3420507|3420512
请帮助如何从行中提取此字符串。问候,Ashish
答案1
编辑,根据要求更改:
- Ctrl+H
- 找什么:
([()])|T[^\d\r\n]+(\R)?
- 用。。。来代替:
(?1:(?2$2:|))
- 检查环绕
- 检查正则表达式
- Replace all
解释:
([()]) : group 1, open or close parenthesis
| : OR
T : the letter T
[^\d\r\n]+ : 1 or more any character that is not a digit or linebreak
(\R)? : group 2, a line break, optional
替代品:
(?1: : conditionnal replacement,
if group 1 exists replace with nothing
(?2$2:|) : conditionnal replacement,
if group 2 exists let it at same place
else replace with pipe |
)
给定示例的结果:
1745817|1745818|1745820|1745819|1786717
3406379|3410183|3414397|3272288|3348134|3379438|3348136|3420508|3420503|3420511|3420504|3420505|3420507|3420512