【发布时间】:2012-07-22 01:22:40
【问题描述】:
我继承了一个从某些文件中提取数据的 perl 脚本。整个脚本运行良好,但最近一些工程师已经为某个通常取一个数字的位置输入了多个数字,因此输出并未显示所有预期的内容。
示例输入:
CRXXXX: "Then some text"
CRs XXXX, XXXX, XX, XXX
CRXXX "Some Text"
目前这个正则表达式语句我已经提取了 CR 之后的数字,但是如果给出第二行示例输入,它会打印 "s XXXX, XXXX, XX, XXX" 而不是想要的 "XXXX XXXX XX XXX"
我对 perl 非常陌生,并且正在努力弄清楚如何更改此正则表达式以处理所有输入。
$temp_comment =~ s/\s[cC][rR][-\s:;]*([\d])/\n$1/mg;
提前致谢!
布洛克
【问题讨论】:
-
这个很不清楚。您不能给我们一些真实数据和您想要的相应输出吗?
X字符应该是数字吗? -
Brock,另外两行输入的预期输出是多少?您的正则表达式应该匹配 CRXXX 部分还是后面的“某些文本”?
-
你想要什么输出?
-
是的,X 是数字,很抱歉忘记提及这一点。其他行的预期输出只是“CR”后面的数字,例如,如果 CR1234:“blah blah blah”,它将更改为 1234。或者如果 CR999“随机文本”只是更改为 999
标签: regex perl parsing scripting