我有一个很长的文本,我需要将两个单词之间的单个单词隔开。
这是我的文本的一部分:
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现在我想选择除以下之外的所有单词和数字,例如:
gir1.2-notify-0.7因此我将它们替换为“”(实际删除所有其他单词和数字)..我想,有两个关键字可以用来隔离它们:“删除”和“{一些数字和。}”必须排除它们之间的所有东西……
我希望你收到了。谢谢你的帮助。
发布于 2012-05-06 21:21:17
试试这个:
(?<=remove)\s+([\w\.\-]+)\b这只是一种简单的positive look-behind方法。要更好地理解,请访问
发布于 2012-05-06 20:12:15
r"\w[\w-]*[\.]{1}\w[\w-\.]*" /// -> it will match all strings of the form -> one-alphanumeric-character.one-alphanumeric-character
所以它会匹配girl1.2-notify-0.7,但不会匹配gwibber-service。
发布于 2012-05-06 20:33:35
我不确定我是否真的理解你的问题,但是...
使用下面的正则表达式:remove(.*)<none>$ $1会给出“gir1.2-notify-0.7”
我不认为您能够在单个语句中选择/替换除$1以外的所有内容,您可能必须根据regex返回的结果滚动一些代码进行处理。
https://stackoverflow.com/questions/10470285
复制相似问题