什么是符合ASCII和显式货币符号的正则模式



我是REGEX的新手,并尝试在此处搜索一些相关问题。但找不到解决方案。

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

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

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

我知道货币符号不是来自ASCII,但是我们可以从HTML获得这些值,并使用StringEscapeUtils.unescapehtml(),因此只需要在满足上述任何条件时才匹配任何正格图案。

我的要求是:

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

如果您查看模式类的Javadoc,您会看到ASCII代码的字符类。因此,您的代码可能是:

Stirng input = ...;
boolean isValid = input.matches("[₺£€\p{ASCII}]*");

那是假设您要接受任何任何 ascii字符。

此正则应该完成您的工作 -

[!-~₺£€]+

它匹配所有可打印的ASCII字符,即33至126加3个特定的非ASCII字符。

在此处检查-http://regexr.com/

最新更新