可以有像sshexclude1 sshexclude2这样的字符串,我想只捕获“1”和“2”,即sshexclude后面的数字,并将其保存为ssh *,如何提取该值。这是我到目前为止所尝试的...(我想将串联值保存在字符串类型的bean中)
<bean id="sshExcludeValue" class="java.util.regex.Pattern" factory-method="compile">
<constructor-arg value="^sshexclude\d$" />
</bean>
答案 0 :(得分:0)
我不认为这与Spring有什么关系,但你可以只做一个简单的字符串正则表达式替换,例如:
String result = "sshexclude1".replaceFirst("exclude", "");
会给你“ssh1”
答案 1 :(得分:0)
Capturing groups用于捕获正则表达式中Strings
的部分。它们的应用程序在应用程序上下文文件中与在Java代码中没有区别:
<bean id="sshExcludeValue" class="java.util.regex.Pattern" factory-method="compile">
<constructor-arg value="sshexclude(\d+)" />
</bean>
Autowire
一个bean来接收Pattern
@Autowired
Pattern pattern;
然后使用Matcher#matches
提取数字
String str = "sshexclude2";
Matcher matcher = pattern.matcher(str);
if (matcher.matches()) {
String newString = "ssh" + matcher.group(1);
}
请注意,当matches与完整String
匹配时,会删除行锚点的开头和结尾。