我有以下文字
| 1 Style Indented Normal + Courier New T201_LLR_001 | 2 Style Indented Normal + Courier New将接受三个指针。| 3 Style Indented Normal + Courier New SSC_01_SRS_0001
我需要转换此文本以获得三个单独的输出
- T201_LLR_001
- 应接受三个指针
- SSC_01_SRS_0001
我使用了以下常规(\S+_LLR_\d+)(.+)\t(SSC_.+)*
获取以下输出
- T201_LLR_001
- | 2 Style Indented Normal + Courier New接受三个指针。| 3 Style Indented Normal + Courier New
- SSC_01_SRS_0001
但是,我需要摆脱文本|2 Style Indented Normal + Courier New" and "|3 Style Indented Normal + Courier New
正则表达式有可能吗?
我不知道如何使用(?!TEXT)
。
答案 0 :(得分:0)
使用其他群组捕获|2 Style Indented Normal + Courier New
和|3 Style Indented Normal + Courier New
。如果需要,您甚至可以使用非捕获组(?:)。
答案 1 :(得分:0)
试试这个(.NET):
(?<=\|\d \w* \w* \w* \+ [a-z-A-Z0-9 ]*\t)[\w ]*
或者这个:
(?<=\|\d [a-zA-Z+ ]*\t)[\w ]*
答案 2 :(得分:0)
对于那些没有注意到的人,我看到你想要的字体和字符串之间有一个标签,这使问题变得相当容易。
这可以给你你想要的东西:
([^_\s]+_LLR_\d+)[^\t]*\t([^|]*)[^\t]*\t(SSC_.+)
<强>解释强>
我将\S
(不是空格)更改为[^_\s]
(不是下划线或空格)。
然后你消耗T201_LLR_001
。
然后您将消费所有内容,包括下一个标签,其中包含|2 Style Indented Normal + Courier New
。
然后,您将使用|
之前的所有内容,Shall accept the three pointers.
将其存储在一个组中,并将其放在括号中。
然后您将消费所有内容,包括下一个标签,其中包含|3 Style Indented Normal + Courier New
。
然后您使用SSC_01_SRS_0001
并将其放入一个组中。
Java test正确打印出来:
T201_LLR_001
Shall accept the three pointers.
SSC_01_SRS_0001