Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex PCRE-在Patrn周围添加引号_Regex_Pcre - Fatal编程技术网

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
起作用吗?