Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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
Javascript 使用正则表达式查找符合特定条件的变量_Javascript_Regex_Expression_Adobe_Livecycle - Fatal编程技术网

Javascript 使用正则表达式查找符合特定条件的变量

Javascript 使用正则表达式查找符合特定条件的变量,javascript,regex,expression,adobe,livecycle,Javascript,Regex,Expression,Adobe,Livecycle,我想在Notepad++中使用正则表达式来查找以下表达式: form1.子表单[0]。linestatus.rawValue 或 form1.subform.linestatus.rawValue 或者,一般模式如下(Adobe LiveCycle FormCalc表达式): element1.element2[index1].element3[index2].element4.element\u n.propName 其中[index1]和[index2]是可选的 此外,匹配应排除以下内容(A

我想在Notepad++中使用正则表达式来查找以下表达式:

form1.子表单[0]。linestatus.rawValue

form1.subform.linestatus.rawValue

或者,一般模式如下(Adobe LiveCycle FormCalc表达式):

element1.element2[index1].element3[index2].element4.element\u n.propName

其中[index1]和[index2]是可选的

此外,匹配应排除以下内容(Adobe LiveCycle JavaScript表达式):

xfa.resolveNode(“form1.subform.linestatus”).rawValue xfa.resolveNode(“form1.subform[0].linestatus”).rawValue

或一般模式为(不得与以下内容匹配): 解析节点(“element1.element2[index1].element3[index2].element4”).propName

其中propName可以是以下任意固定名称: -原值 -通路 -格式化值 ……等等

最终的目标是能够使用find/replace将第一种语法(FormCalc)转换为第二种语法(JavaScript)

谢谢你的帮助

注意:到目前为止,我能够使用这个表达式,但还不够:

\b(?!xfa\.resolveNode\(\")([a-zA-Z_][a-zA-Z0-9_]*(\[([0-9]+)\])?\.)*rawValue
编辑: 我想我找到了解决办法,但我不确定为什么它会起作用。选中此项:

(^|[\s(])(?!xfa\.resolveNode\(")(([a-zA-Z][a-zA-Z0-9]*(\[[0-9]+\])?\.?)*)(\.rawValue)
下面是一个工作示例:

如果有人能解释它为什么起作用以及是否有更好的解决方案,我们将不胜感激

编辑: 这里是一个简化的regx。由于复杂性,最后一个在某些情况下会崩溃:

Find:   (?:(^|[\s;(])(?!xfa\.resolveNode\(\".+\"\))((?:[a-zA-Z0-9_\.\[\]]*))(\.(?:rawValue|access|fillColor)))
Replace:    \1xfa.resolveNode\("\2"\)\3
检查一下


Tarek

检查最后一次编辑。我想我找到了解决方案,非常感谢您的反馈。简化了regx以防止由于无限回溯而导致崩溃。