如何在java中生成正则表达式语法
我想制作一个正则表达式语法,允许使用ASCII字母、数字、连字符、下划线和正斜杠
目前我正在使用以下语法,但它不起作用
if (!id.matches("[a-zA-Z0-9_-/]+")) {
throw new IllegalArgumentException("Invalid ID: \"" + id
+ "\". An ID may not be the empty string and must contain only ASCII letters, digits, hyphens and underscores and forward slash.");
}
但是,当我从正则表达式中删除“/”时,它工作正常。在这种情况下,如何添加正斜杠
我研究了regex教程,它有一些例子,但这些都是单独的。我想使用正斜杠和ASCII字母、数字
# 1 楼答案
使用
_-/
创建一个范围将连字符放在末尾(并始终保持在那里):
或者,将连字符转义为始终将其视为文字符号:
注意:已经进行了一些讨论,并且已经指出,如果正则表达式将进一步改进/增强/扩展,最好的方法是转义字符类中应视为文字
-
符号的连字符