Regex PCRE-在Patrn周围添加引号
我希望在所有匹配的模式周围添加引号。数字、变量名、数字长度等多种多样。只有格式相同,但数字可以是小数 字符串:Regex PCRE-在Patrn周围添加引号,regex,pcre,Regex,Pcre,我希望在所有匹配的模式周围添加引号。数字、变量名、数字长度等多种多样。只有格式相同,但数字可以是小数 字符串: interval = 14..12:5 jaja1 = 1 du =545 werfgbhnm=0.5..0.7:1 dasdsa = "false" dasdsa2 = False 模式: [-\d+\.]*\.\.[-\d+\.]*:[-\d+\.] 我想添加替换,如: s/[ =][-\d+\.]*\.\.[-\d+\.]*:[-\d+\.]*/\"[ =][-\d+\.]
interval = 14..12:5
jaja1 = 1
du =545
werfgbhnm=0.5..0.7:1
dasdsa = "false"
dasdsa2 = False
模式:
[-\d+\.]*\.\.[-\d+\.]*:[-\d+\.]
我想添加替换,如:
s/[ =][-\d+\.]*\.\.[-\d+\.]*:[-\d+\.]*/\"[ =][-\d+\.]*\.\.[-\d+\.]*:[-\d+\.]*\"/g
结果:
interval = "14..12:5"
jaja1 = 1
du =545
werfgbhnm="0.5..0.7:1"
dasdsa = "false"
dasdsa2 = False
当然,我的解决办法行不通。用pcre模式替换我的字符串。你的成绩如何 试试看:
s/(\w+\s*=\s*)(\d+\.\.\d+:\d+)/\1"\2"/
看
这将使用两个捕获组,并将第二个捕获组置于引号之间。事实上,我认为不需要捕获组,请尝试:
您能否提供一个简单的字符串示例以及您需要替换的新字符串?完成。我编辑了这个问题。试着不要替换它。现在检查已编辑的问题。其中的字符串“interval=”是多种多样的。只有模式格式始终是相同的。这就是我为什么要写我的模式的原因。好吧,然后用
\w+
更改间隔
,它应该会工作。查看变量名末尾的是否为整数?或者当有人写“interval=”时?它应该可以处理大量数据。我将再次修正我的问题。不幸的是,它只在Regextest中起作用。在替换后的我的perl脚本中,它看起来是这样的:interval=“[thresholds]low=“”high=40 persistence=9[bbands]TimePeriod=20 NbDevUp=2 NbDevDn=2
它的表达式:$substitute=~s/[-\d+\.]*.[-\d+\.]*:[-\d+\.].*/“\0”/g组回溯只接受正整数(因此\0
不起作用),s/([-\d+\.]*\..[-\d+\.]*:[-\d+\.]*)/“\1”/g
起作用吗?