字符串和换行符之间的字符串的正则表达式
问题描述:
好吧,我已经阅读了几个小时,无法让我的正则表达式工作。 我无法使用组或处理返回的文本,所以它必须在第一次拉正确的东西。字符串和换行符之间的字符串的正则表达式
我需要从这段文字拉编号:
Hardware Version : 0600
Serial Number : FOC145183BA
Product ID : CTS-CODEC-PRI-G2
我曾尝试:(Serial Number.*[:])(.*)
但是这给了我“序列号”到文本的末尾。我试过了?的东西,但它只是错误。我通过telnet使用这个思科编解码器,它没有给我任何灵活性。
答
没有组这可能是不可能的,但如果允许替换,那么您可以尝试索姆ething怪异像
s/^Serial Number\s*:\s*$|^[^S].*$//g
删除线的起点,而不是开始S.不惊人的优雅的任何其他线路,但可能完成这项工作
+0
这样做,但你是对的,乍看起来很混乱。 – schumacherj 2015-01-20 22:35:07
答
您错过了试图使用“0或更多”的特殊字符,即*
或“一个或多个”,即+
。尝试Serial Number.*: (.+)$
。
答
取决于正则表达式引擎和
(Serial Number.*[:])(.*)$
元是否贪婪等应匹配线的端部,但在一些发动机可能匹配模式空间的末尾,如果它处于某种多线处理模式下
感谢您的编辑。起初我并没有意识到它是如何切断它的。 – schumacherj 2015-01-20 21:58:33
什么正则表达式版本?非常不同的'sed'和'Perl' – dawg 2015-01-20 22:06:12
不确定,我正在使用Pexpect,一个Python模块。我查看了文档,它只提到它接受正则表达式,但不是它如何编译它。 – schumacherj 2015-01-20 22:09:18