我想创建一个与任何角色都不匹配的角色类。现在,我一直代表这样的模式:
Pattern p = Pattern.compile("[a&&b]");
甚至
Pattern p = Patterncompile("[^\\x{0}-\\x{10FFFF}]");
有没有正确的方法呢?
注意:没有必要提供不涉及角色类的替代解决方案(负向前瞻等)。我只是想知道是否有"权利"这样做的方法。
更新:我正在实现一项功能,该功能向用户打印出他首先输入的内容的简化版本。由于我正在简化字符类,因此我的当前版本只会为[]
等输入打印[a&&b]
。如果我们再次解析[]
,它将抛出一个错误,这不是我想要的。因此,这就是为什么我想通过向他展示像^$
答案 0 :(得分:2)
Altough没有多大意义,你可以在一个字符类中使用character class subtraction功能来实际定义一个字符并减去它 - 然后这个类将无法匹配任何东西。
示例:
<?php
$string = "This is a Sample sting of information";
$words = array('This is', 'Test', 'sample', 'information', 'sting of informtaion');
foreach ($words as $word) {
var_dump(stristr($string,$word) !== false); // this will help you to understand, what is happening here.
if (stristr($string,$word) !== false) {
echo $word." - YES<br>";
}
else {
echo $word." - NO<br>";
}
}
?>
由于字符类只应与information != informtaion
匹配,并且[a&&[^a]]
被减去,因此此模式不会与任何内容匹配。
答案 1 :(得分:-2)
你所做的不是字符类,它们是正则表达式。如果您想匹配空输入(单词中的“与任何字符不匹配”),请使用^$
。