什么是可以匹配ASCII和显式货币符号的正则表达式模式

时间:2016-06-22 11:04:27

标签: java regex pattern-matching

我是regex的新手,并试图在这里搜索一些正则表达式相关的问题。但无法找到解决方案。

我想检查字符串是否只包含以下内容:

1)ASCII字符(目前仅使用"^\\p{ASCII}*S"表示ASCII)或

2)以下货币符号: ₺,£,€

我知道货币符号不是来自ASCII,但是我们可以从html获取这些值并使用StringEscapeUtils.unescapehtml(),因此只有在满足上述任何条件时才能匹配任何正则表达式模式。

我的要求是:

  

如果字符串具有除ASCII和给定符号以外的任何字符,则应返回false

2 个答案:

答案 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/