我是regex的新手,并试图在这里搜索一些正则表达式相关的问题。但无法找到解决方案。
我想检查字符串是否只包含以下内容:
1)ASCII字符(目前仅使用"^\\p{ASCII}*S"
表示ASCII)或
2)以下货币符号: ₺,£,€
我知道货币符号不是来自ASCII,但是我们可以从html获取这些值并使用StringEscapeUtils.unescapehtml()
,因此只有在满足上述任何条件时才能匹配任何正则表达式模式。
我的要求是:
如果字符串具有除ASCII和给定符号以外的任何字符,则应返回
false
答案 0 :(得分:3)
如果查看the javadoc of the Pattern class,您会看到有一个ASCII码的字符类。所以你的代码可能是这样的:
Stirng input = ...;
boolean isValid = input.matches("[₺£€\\p{ASCII}]*");
假设你想接受任何 ASCII字符。
答案 1 :(得分:0)
这个正则表达式应该可以胜任你的工作 -
[!-~₺£€]+
它匹配所有可打印的ASCII字符,即33至126加上您要检查的3个特定非ASCII字符。
在此处查看 - http://regexr.com/