在以下正则表达式中:
[a-zA-Z_]?\"(\\.|[^\\"])*\"
\"(\\.|[^\\"])*\"
是什么意思?
答案 0 :(得分:1)
以下是描述:
[ # start character class
a-zA-Z # case insensitive character match
_ # underscores are allowed too
] # end character class
? # match zero or one time
( # start group
\\. # dot character
| # OR
[ # start character class
^ # match any character
\\" # except double quote
] # end character class
) # end group
* # match zero or more occurrences
答案 1 :(得分:0)
它看起来像java,所以分解
\"(\\.|[^\\"])*\"
我们得到:
\"
字面引用"
(
启动小组\\.
字面点|
逻辑“或”[
开始角色等级^
否定\\"
不必要地转义引号 - 相当于\"
- 也应该有3个或1个反斜杠,所以这是一个语法错误,因为它是]
结束字符类)
结束组*
任意数量的\"
字面引用"
总之,这意味着:引号之间的任意数量的点(包括零点)
角色类试图不贪婪,但有更简单的方法 - 只需使用“非贪婪”运算符*?
。即它可以被替换为:
\"\\.*?\"