使用notepad ++从文档中提取文本


1

我有一个文本文件,我需要从中提取特定的数据元素。

示例文字:

HI ABK> Z48812~HI APR> Z48812~HI * ABF> I2510 * ABF> K810 * ABF> I10 * ABF> J449 * ABF> F329 * ABF> F419 * ABF> I252~NM1 * 71 * 1 * Darbinian * Sevak * *** XX * 1306859178〜LX * 1〜* SV2 0551 * HC> G0154 * 250 * UN * 4〜DTP * 472 * * D8〜20180202 REF * 6R * 74990814〜HL * 3 * 1 * 22 * 0〜HI ABK> N390~HI APR> N390~HI * ABF> B9620 * ABF> B961 * ABF> N319 * ABF> G8220 * ABF> S12300S * ABF> G9520 * ABF> Z1612~NM1 * 71 * 1 * Boonyaputthikul * Robert ** ** XX * 1700198801〜LX * 1〜* SV2 0551 * HC> G0154 * 250 * UN * 4〜DTP * 472 * * D8〜20180125 REF * 6R * 74990810〜

我想提取:

Darbinian Sevak 1306859178

Boonyaputthikul Robert 1700198801

如何用notepad ++做到这一点?


欢迎来到超级用户!你都尝试了些什么?您的数据是否与上面的数据格式完全一致 -一条连续线?
bertieb

您可以使用正则表达式,也可以使用任何编程语言来执行此操作。
GoutamS

是一条连续线,我似乎可以在正则表达式中得到正确的表达
Missy

提取的规则是什么?
托托

我不确定你的提取规则是什么意思。我有一个文本文件,现在我实际上做了一个ctrl F来找到NM1 * 71 * 1 *,然后我将文本复制并粘贴到〜到另一个文件中。问题是我可以轻松地在文档中拥有超过1000个NM1 * 71 * 1 *实例,并且我有250个文档要经历。
Missy '18

Answers:


2

使用Notepad ++无法在一个步骤中完成此操作,您可以这样做:

第一步:

  • Ctrl+H
  • 找什么: (?:^|\G).+?NM1\*71\*1\*(.+?)\*{4}XX\*(\d+)
  • 用。。。来代替: $1 $2\n
  • 检查包裹
  • 检查正则表达式
  • 不要检查 . matches newline
  • Replace all

说明:

(?:             : non capture group
  ^             : beginning of line
 |              : R
  \G            : position of last match
)               : end group
.+?             : 1 or more any character, not greedy
NM1\*71\*1\*    : literally "MN1*71*1*", asterisk have to be escaped
(.+?)           : group 1, 1 or more any character, not greedy
\*{4}XX\*       : 4 asterisks, XX, then 1 asterisk 
(\d+)           : group 2, 1 or more digit

替换:

$1      : content of group 1
        : a space
$2      : content of group 2
\n      : line feed, you could change it for the linebreak you need

给出示例的结果:

Darbinian*Sevak 1306859178
Boonyaputthikul*Robert 1700198801
LX*1~SV2*0551*HC>G0154*250*UN*4~DTP*472*D8*20180125~REF*6R*74990810~

在第二步中,您必须删除最后一行。


非常感谢你,我不会忘记怎么做!完美的工作。
Missy '18

@Missy:很受欢迎,很高兴有帮助。
托托

@Missy:随意将答案标记为已接受,请参阅:superuser.com/help/someone-answers
Toto
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.