【发布时间】:2014-05-05 06:10:18
【问题描述】:
我在 PL/SQL 中编写了一个正则表达式来验证自定义 URL:
'^((http|https):\/\/)?(www[0-9]\.)?(([A-Za-z0-9_-])+\.{1})+([A-Za-z]{2,4}|\'
|| START_CHAR || '[^' || START_CHAR || END_CHAR || ']+\' || END_CHAR ||
')(\/([A-Za-z0-9_-]|\' || START_CHAR || '[^' || START_CHAR || END_CHAR ||
']+\' || END_CHAR || ')+)*(\/)?$'
START_CHAR 和 END_CHAR 是两个不同的常量字符。在我上面的正则表达式中,START_CHAR 重复(四次)。
如何用单个START_CHAR 和END_CHAR 重写它?
【问题讨论】:
-
您已将其标记为 Java,但您的代码看起来像是在使用 SQL 样式的字符串连接。您的标题谈到“优化”正则表达式,但您的身体提出了完全不同的要求,希望消除对变量的多余提及。请改进您的帖子,以便清楚您的实际正则表达式是什么,它实际上是什么类型的正则表达式,以及您真正希望看到的更改。
-
@ruakh 感谢您向我反馈我犯的那个大错误。现在我编辑我的问题