我如何使这个正则表达式更通用,有时它工作,有时它不工作

Ank*_*kur 0 java regex validation robustness

我有一个我在java应用程序中使用的正则表达式.有时候它可以正常工作,有时则不然.

<!-- <editable name=(\".*\")?> -->(.*)<!-- </editable> -->
Run Code Online (Sandbox Code Playgroud)

有时我会在它之前/之后有空格,有时候会有文字.标签内的区域也是如此.

主要问题是name =(\".*\")?>有时匹配的次数超过预期.我不确定这是否是明显可以解决的问题,只需查看此代码即可.

Sva*_*nte 5

XML不是常规语言,也不是HTML或任何其他具有"嵌套"结构的语言.不要试图用正则表达式解析它.

选择XML解析器.

  • 即使您有输入数据保证无嵌套的情况,*ML仍然足够复杂,手动正则表达式通常在极窄的应用程序之外是不正确的.因此,即使您当前的数据足够简单,可以使用真正的XML解析器来处理正则表达式. (3认同)