Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.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
Java Regex将围绕某些文本要求添加引号_Java_Javascript_Regex_String - Fatal编程技术网

Java Regex将围绕某些文本要求添加引号

Java Regex将围绕某些文本要求添加引号,java,javascript,regex,string,Java,Javascript,Regex,String,我有一个字符串,我试图在满足某些要求的文本周围添加引号“”。规则是在“Text:”之后和“;”之前的单词中添加“”或“}” 下面是字符串:EDIT(请注意“”。这不是一个JSON对象。它只是一个字符串): 我无法让它工作试试这个: str.replace(/Text:[\s]*([^;}\r\n]+)/ig, 'Text: "$1"'); 尽管我怀疑你的问题中的str是否是一个字符串。它看起来更像(无效的)JSON对象,而不是字符串。浏览器将无法解释此文本javascript对象上的任何内容

我有一个字符串,我试图在满足某些要求的文本周围添加引号“”。规则是在“Text:”之后和“;”之前的单词中添加“”或“}” 下面是字符串:EDIT(请注意“”。这不是一个JSON对象。它只是一个字符串):

我无法让它工作

试试这个:

str.replace(/Text:[\s]*([^;}\r\n]+)/ig, 'Text:  "$1"');

尽管我怀疑你的问题中的
str
是否是一个字符串。它看起来更像(无效的)JSON对象,而不是字符串。

浏览器将无法解释此文本javascript对象上的任何内容。 有一个语法错误

首先,您应该在JS对象的每个属性上丢失分号,并添加一个简单的逗号

应该是这样的:

var str = View_1: {
    Name:"View1",
    Image_1:{
        BackgroundImage:"Image.gif",
        Position: [0, 0],
        Text: 320,
        Height: 480
    },

    Button_1:{
        BackgroundImage:"Button.gif";
        Transition:"View2",
        Position: [49, 80],
        Width: 216,
        Height: 71,
        Text: more text more
    },

    Button_2:{
        BackgroundImage:"Button2.gif",
        Position: [65, 217],
        Width: 188,
        Text:Some Text,
        Height: 134
    },
};
分号仅在对象的末尾。 这些属性感觉不像是一个正则变量

您可以使用

var fixed = s.replace(/(Text:\s*)(.+?)(\s*;|}|$)/gm,'$1"$2"$3');

演示在

@gabayakag.Petrioli,“var”表示javascript。另外,我不知道这是什么,但它不是JSON语法。
错误。真的,我想就是这样。棘手的是,冒号前后可能会有空格,冒号后面的单词可能已经有双引号或单引号,以及各种字符作为内容,要引用的部分可能在结束的大括号前有一个换行符等等,可能是.@gabykag.Petrioli,它是用Javascript编写的。我一直在使用.replace()@JaredFarrish,实际上这与json(有点类似),但实际上完全不同。这是我们拥有的一个程序的指令脚本。可能字符串包含
var str=
part…不过,我忘了JSON需要双引号标识符,而原生JS对象初始值设定项不需要。这就是它的样子,减去
。是否要在分号等之前去掉末尾的空格?如果已经有双引号或单引号怎么办?@JaredFarrish The
是我最讨厌的。我对JSON解析器的经验是,如果JSON是有效的,它们要么解析整个JSON,要么就吐出一个错误,即使它的一部分是无效的。@LeeMeador这实际上取决于OP是否想这样做。如果是的话,正则表达式就会改变。它需要{}围绕整个事情,然后。它是一种自定义数据格式,所以JSON不合适,除非它是传递或其他东西的一部分。我感谢大家的帮助,但这太复杂了。不要把它当作一个物体。在这一点上,这只是一个字符串。在这之前,它是一个有几十行代码的对象。现在它只是一个字符串,它会被传递到一个C++程序中,作为字符串。我用这个代码给它添加了“x”数字。str=str.replace(/([^:]+):{/g,函数(m,p1){i[p1]=(i[p1]| | 0)+1;返回p1+“”+i[p1]。toString()+“:{;”;“现在我处理完它们了,所以我用'finalString=objString.replace(/\ud++/g,{');”来删除它们。现在我正在尝试添加引号。有意义吗?@Rob-你能把它放到问题中吗?在评论中读起来太难了。
var fixed = s.replace(/(Text:\s*)(.+?)(\s*;|}|$)/gm,'$1"$2"$3');