我有一些我想要匹配的用户输入但是我删除了'^-
等特殊字符。我想知道是否可以提供一组特定字符来匹配或“忽视”。因此,如果列表包含"^-"
且术语为PRM
,P^^R---^M
将匹配,但PROM
不会,因为O
不在“允许“人物。
这是否可以使用正则表达式?
答案 0 :(得分:3)
使用Java 8,您可以使用String.join
将术语中的单个字符与表示一个或多个特殊字符的字符组连接起来,例如[^-]*
,但使用正则表达式特殊字符转义
String term = "PRM";
String special = "^-";
String delimiter = "[" + Pattern.quote(special) + "]*";
String regex = String.join(delimiter, term.split(""));
System.out.println(Pattern.matches(regex, "PROM")); // --> false
System.out.println(Pattern.matches(regex, "P^^R---^M")); // --> true
或者,您也可以replaceAll
""
使用System.out.println(term.equals("PROM".replaceAll(delimiter, ""))); // --> false
System.out.println(term.equals("P^^R---^M".replaceAll(delimiter, ""))); // --> true
的特殊字符并检查是否相等:
function ZipAndDeleteFile([string] $file, [string] $saveLocation)
{
$command = [string]::Format("`"{0}`" a -ep -df `"$saveLocation`" `"$file`"", $winrarPath);
iex "& $command";
}