我有一个很长的文字,我需要在另外两个单词之间隔离单词。
这是我所拥有的文字的一部分:
2012-05-05 19:31:44 status config-files gwibber-service 3.4.0-0ubuntu4
2012-05-05 19:31:44 status not-installed gwibber-service <none>
2012-05-05 19:31:45 status installed gir1.2-notify-0.7 0.7.5-1
2012-05-05 19:31:45 remove gir1.2-notify-0.7 0.7.5-1 <none>
2012-05-05 19:31:45 status half-configured gir1.2-notify-0.7 0.7.5-1
2012-05-05 19:31:45 status half-installed gir1.2-notify-0.7 0.7.5-1
现在我想选择所有单词和数字excpet,例如:
gir1.2-notify-0.7
所以我用“”替换它们(实际删除所有其他单词和数字).. 我的想法是,我可以使用两个关键词来隔离它们:“删除”和“{some numbers and。}&lt; none&gt;” 他们之间的一切都必须排除......
我希望你明白了。谢谢你的帮助。
答案 0 :(得分:1)
答案 1 :(得分:0)
r"\w[\w-]*[\.]{1}\w[\w-\.]*" /// -> it will match all strings of the form ->
[一个字母数字字符] [(零或更多的字母数字-chararcters-或 - “ - ”)。[一个字母数字字符] [(零或更多的字母数字-chararcters-或 - “ - ”)]
所以它会匹配girl1.2-notify-0.7但它与gwibber-service不匹配。
答案 2 :(得分:0)
我不确定我是否真的理解你的问题,但是......
使用以下正则表达式:remove(.*)<none>$
$1
会给你“gir1.2-notify-0.7”
我认为你不能在单个语句中选择/替换除$ 1之外的所有内容,你可能必须根据正则表达式返回的结果滚动一些代码来处理。