我建议编写一个进行检查的命令行工具。然后,您可以从 bash 脚本调用此工具。
使用这个起点,这里有一些你需要的东西:
import java.io.Console;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class RegexTestHarness {
public static void main(String[] args) {
try{
Pattern pattern = Pattern.compile(args[1]);
Matcher matcher = pattern.matcher(args[2]);
boolean found = false;
while (matcher.find()) {
System.out.println(matcher.group() + ", position " + matcher.start() + ":" + matcher.end() + "\n");
found = true;
}
if (!found) {
System.out.println("\nNo match found.");
System.exit(1);
}
}
catch (Exception e) {
System.out.println("\nCaught an exception. Description: " + e.getMessage());
System.exit(2);
}
}
}
要检查是否有任何匹配,您可以使用以下脚本:
#!/bin/bash
if java RegexTestHarness "my_regex" "my_input_string"; then
echo "Expression matches"
else
echo "Expression doesn't match"
fi
要检查特定结果,您可以捕获命令的输出并在脚本中对其进行处理。