我需要一个正则表达式来转义或捕获(如果尚未转义)所有双引号字符,并将它们放在一个单引号中,然后将开头的单引号转换为双引号!
我们正在重构PHP和JS文件中具有很多(我的意思是很多!)单引号字符串的文件。它们唯一的共同点是字符串至少在一行中,并且在两种语言中都用=表示。
我举一个例子(这个例子是丑陋的旧代码,所以请不要判断它,我已经做到了:))
我们有一个像这样开始的文件:
var baseUrl = $("#baseurl").html();
var head = ''+
我希望它看起来像这样:
var baseUrl = $("#baseurl").html();
var head ="" +
如您所见,未触及正确的双引号字符串。
所以我的基本问题是:如何捕获某个开始字符和结束字符(在我的情况下是字符')之间的一种字符(在我的情况下是字符"")。
这个正则表达式'.*(").*'或'[^']*(")[^']*'每次比赛总是为我捕获一个"。如果需要多个步骤,也可以,那么就可以了。
我对任何能够正常工作的解决方案(IDE特定,语言特定或外壳特定)感到满意。
请帮助,我很拼命,非常感谢
最大的问题是要弄清楚所有字符串的位置,因为您不能使用正则表达式解析所有JS或PHP。但是,如果我假设您不关心注释,
我需要一个正则表达式来转义或捕获(如果尚未转义)所有双引号字符,并将它们放在一个单引号中,然后将开头的单引号转换为双引号!我们正在重构PHP和JS文件中具有很多(我的意思是很多!)单引号字符串的文件。它们唯一的共同点是字符串至少在一行中,并且在两种语言中都用=表示。我举一个例子(这个例子是丑陋的旧代码,所以请不要判断它,我已经做到了:))我们有一个像这样开始的文件:var baseUrl = $(...
单引号
''是全引用,被
单引号
括起的内容不管是常量还是变量者不会发生替换;
双引号
""是部分引用,被
双引号
括起的内容常量还是常量,变量则会发生替换,替换成变量内容!
一般常量用
单引号
''括起,如果含有变量则用
双引号
""括起!
单引号
与
双引号
的最大不同在于
双引号
仍然可以保有变数的内容,但
单引号
内仅能是一般字
元 ,而不会有特殊符号
“”号里面遇到$,\等特殊字符会进行相应的变量替换
正则表达式
中有
转义
字符,其作用主要是对
正则表达式
中的元字符进行
转义
,使其可以匹配元字符本身而不是其特殊的元字符含义。一般的编程语言(包含SQL)中也都有
转义
字符的概念,这些
转义
字符通常都有特殊的含义,比如在windows系统中,'\n'指示换行。两类
转义
字符都以'\'开始。这里具体对两类
转义
字符进行说明。
1.编程语言中的
转义
字符
编程语言中的
转义
字符通常都是些特殊字符。编程语言中常见的
转义
字...
双引号
:
双引号
类似于
单引号
,但不会屏蔽` \ $ 这三个shell元字符的含义,如果需要屏蔽需要前面加一个\符号,其他字符的功能将被屏蔽(包括
单引号
),两个
双引号
之间的
单引号
不必成对出现
1、当pattern或者说匹配模式中,没有空格,可以不用引号,但是有空格一定要用引号。
2、考...
在Linux Shell中,
单引号
和
双引号
用于表示字符串。使用
单引号
括起来的字符串,其中的变量不会被扩展,而使用
双引号
括起来的字符串,其中的变量会被扩展。
举个例子:
```bash
name="Alice"
echo 'Hello, $name!' # 输出:Hello, $name!
echo "Hello, $name!" # 输出:Hello, Alice!
在第一个echo语句中,使用了
单引号
括起来的字符串,其中的变量$name没有被扩展,最终输出结果为"Hello, $name!"。而在第二个echo语句中,使用了
双引号
括起来的字符串,变量$name被扩展成了"Alice",最终输出结果为"Hello, Alice!"。
需要注意的是,在
单引号
内部不能使用
单引号
,而在
双引号
内部可以使用
双引号
和反斜杠来
转义
特殊字符。