如何替换基于索引的子字符串?

妮拉德里·查克拉巴蒂

我有一个字符串(实际上是一条日志行,其中包含敏感信息(info)),我想根据字符串中子字符串的索引替换其中的一个子字符串。子字符串中可以包含多个单词,但根据要求,必须将其视为单个子字符串。

细节:

所以,这是我的字符串:

[2016-04-25 03:48:34] 123737 error 150531221446 2000 Master dmart 843212 "Tough times"

在这里,我们需要将“艰难时期”一词替换为一些字符串,例如“人类”。现在是必须处理字符串的方式:

[2016-04-25 03:48:34]->索引0

123737->索引1

错误->索引2(...依此类推)

“艰难时期”->索引8

现在,python程序(我正在研究)不会对子字符串有任何提示,即“艰难时期”,只需提供数字“ 9”(单词的索引,如上所示)即可。 ,程序将使用结果字符串替换第9个索引中的任何子字符串。同样,如果程序提供的数字为“ 7”,它将用结果字符串替换第7个索引中的任何子字符串。

现在,我尝试使用正则表达式,sed,awk等,但是找不到任何合适的答案。我找到的最接近的解决方案是此正则表达式

但这不符合我的要求。

现在,我怀疑我的要求是否荒谬。

约翰1024

修订问题的答案

让我们从字符串开始:

>>> orig = '[2016-04-25 03:48:34] 123737 error 150531221446 2000 Master dmart 843212 "Tough times"'

接下来,让我们将字符串分成子字符串:

>>> import re
>>> s = re.findall(r'(\[[^]]*\]|\w+|"[^"]*")', orig)
>>> s
['[2016-04-25 03:48:34]', '123737', 'error', '150531221446', '2000', 'Master', 'dmart', '843212', '"Tough times"']

现在,让我们更改第九个子字符串并重新组装该字符串:

>>> s[8] = '"Human race"'
>>> ' '.join(s)
'[2016-04-25 03:48:34] 123737 error 150531221446 2000 Master dmart 843212 "Human race"'

有关正则表达式的更多信息

正则表达式允许子字符串匹配以下三种模式中的任何一种:

  1. \[[^]]*\]:子字符串,以开头[和结尾,]并且之间有任何字符,但除外]

  2. \w+:任何系列的“单词”字符。

  3. "[^"]*":双引号字符串。

回答原始问题

这种方法在字符串中寻找匹配的定界符。分隔符可以是(a)[],或(b)(),或(c)""分隔符可以按任何顺序排列。一旦找到匹配的定界符,该字符串将被分为多个子字符串,然后我们可以对其进行更改和重新组合。

为了演示,让我们从以下字符串开始:

>>> orig = '[2016-04-25 03:48:34] (info) (info) (info) (info) (info) (info) (info) "Tough times"'

接下来,让我们使用匹配的分隔符将其分成几组:

>>> import re
>>> s = re.findall(r'(\[[^]]*\]|\([^)]*\)|"[^"]*")', orig)
>>> s
['[2016-04-25 03:48:34]', '(info)', '(info)', '(info)', '(info)', '(info)', '(info)', '(info)', '"Tough times"']

现在,让我们更改第九个字符串并重新组装:

>>> s[8]='"Human Race"'
>>> ' '.join(s)
'[2016-04-25 03:48:34] (info) (info) (info) (info) (info) (info) (info) "Human Race"'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用字符串中的字典值替换基于索引范围的子字符串

来自分类Dev

如何基于索引提取子字符串

来自分类Dev

如何基于索引提取子字符串

来自分类Dev

如何根据索引替换子字符串?

来自分类Dev

如何用子字符串索引的字典中的值替换子字符串

来自分类Dev

MySql 子字符串索引,查找和替换字符

来自分类Dev

如何从变量替换子字符串?

来自分类Dev

如何找到子字符串的索引?

来自分类Dev

如何基于另一个字符串的索引获取子字符串

来自分类Dev

如何用所需的子字符串替换JSon字符串的子字符串

来自分类Dev

如何使用基于group by子句的数值替换“字符串”

来自分类Dev

如何基于python中的索引更改字符串

来自分类Dev

如何用另一个子字符串替换子字符串(按索引from..to)

来自分类Dev

如何用另一个子字符串替换子字符串(按索引from..to)

来自分类Dev

如何基于另一列中的索引来操作一列中的子字符串

来自分类Dev

如何基于熊猫中的位置获取子字符串?

来自分类Dev

如何从基于JavaScript中某些字符的字符串中获取子字符串?

来自分类Dev

Swift:基于字符的子字符串

来自分类Dev

如何替换属性JQuery中的子字符串

来自分类Dev

如何用链接替换子字符串?

来自分类Dev

如何从GridView列中删除/替换子字符串?

来自分类Dev

如何用链接替换子字符串?

来自分类Dev

如果子字符串替换了随机字符,如何查找子字符串?

来自分类Dev

如何获取PHP子字符串的索引0

来自分类Dev

如何在Oracle中获取子字符串索引

来自分类Dev

基于索引的字符串拆分

来自分类Dev

如何在Typescript中基于给定字符串的子字符串选择属性

来自分类Dev

如何在C#中基于字符串的长度读取子字符串

来自分类Dev

Python:字符串替换索引

Related 相关文章

  1. 1

    用字符串中的字典值替换基于索引范围的子字符串

  2. 2

    如何基于索引提取子字符串

  3. 3

    如何基于索引提取子字符串

  4. 4

    如何根据索引替换子字符串?

  5. 5

    如何用子字符串索引的字典中的值替换子字符串

  6. 6

    MySql 子字符串索引,查找和替换字符

  7. 7

    如何从变量替换子字符串?

  8. 8

    如何找到子字符串的索引?

  9. 9

    如何基于另一个字符串的索引获取子字符串

  10. 10

    如何用所需的子字符串替换JSon字符串的子字符串

  11. 11

    如何使用基于group by子句的数值替换“字符串”

  12. 12

    如何基于python中的索引更改字符串

  13. 13

    如何用另一个子字符串替换子字符串(按索引from..to)

  14. 14

    如何用另一个子字符串替换子字符串(按索引from..to)

  15. 15

    如何基于另一列中的索引来操作一列中的子字符串

  16. 16

    如何基于熊猫中的位置获取子字符串?

  17. 17

    如何从基于JavaScript中某些字符的字符串中获取子字符串?

  18. 18

    Swift:基于字符的子字符串

  19. 19

    如何替换属性JQuery中的子字符串

  20. 20

    如何用链接替换子字符串?

  21. 21

    如何从GridView列中删除/替换子字符串?

  22. 22

    如何用链接替换子字符串?

  23. 23

    如果子字符串替换了随机字符,如何查找子字符串?

  24. 24

    如何获取PHP子字符串的索引0

  25. 25

    如何在Oracle中获取子字符串索引

  26. 26

    基于索引的字符串拆分

  27. 27

    如何在Typescript中基于给定字符串的子字符串选择属性

  28. 28

    如何在C#中基于字符串的长度读取子字符串

  29. 29

    Python:字符串替换索引

热门标签

归档