【问题标题】:Substituting by pattern in regex用正则表达式中的模式替换
【发布时间】:2017-04-30 04:46:32
【问题描述】:

我有一个文件,其中包含如下所示的行:

some_var = "值"

我想将它(使用正则表达式)更改为:

"some_var" : "值"

查找“some_var”组的正则表达式很简单:(?P<some_var_group>[a-z_]+)\s+=\s\".*\" 但是,如何在some_var_group 之前和之后添加"

这个问题不仅仅是关于这个特定的问题,我真的很想知道如何用模式替换。

谢谢!

【问题讨论】:

  • 那么,是python还是js呢?
  • 嗯实际上这对我来说并不重要,因为我可以同时使用两者。

标签: javascript python regex


【解决方案1】:

蟒蛇:

import re

text = 'some_var = "value"'

regex = r'([a-z_]+)\s*=\s*"(.+?)"'
print re.sub(regex, r'"\1":"\2"', text)

js:

text = 'some_var = "value"'

regex = /([a-z_]+)\s*=\s*"(.+?)"/
console.log(text.replace(regex, '"$1":"$2"'))

【讨论】:

  • 有没有一个选项可以用组名写下来?只是为了代码可读性,(而不是 \1 或 $1,组的名称)
  • @Hamus:在 python 中是的,\g<groupName>,js 不支持命名组
猜你喜欢
  • 2012-02-12
  • 1970-01-01
  • 2016-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多