0

sshexclude1 sshexclude2 のような文字列が存在する可能性があります。「1」と「2」、つまり sshexclude に続く数字だけをキャプチャして ssh* として保存したいのですが、その値を抽出するにはどうすればよいですか。これは私がこれまでに試したことです..(連結された値を文字列型のBeanに保存したい)

<bean id="sshExcludeValue" class="java.util.regex.Pattern" factory-method="compile">
     <constructor-arg value="^sshexclude\d$" />
</bean>
4

2 に答える 2

0

これは Spring とは何の関係もないと思いますが、単純な文字列の正規表現の置換を実行できます。たとえば、次のようになります。

String result = "sshexclude1".replaceFirst("exclude", "");

「ssh1」を提供します

于 2013-06-05T00:33:12.480 に答える
0

キャプチャ グループStringsは、正規表現でのセクションをキャプチャするために使用されます。それらのアプリケーションは、アプリケーション コンテキスト ファイルでも Java コードでも同じです。

<bean id="sshExcludeValue" class="java.util.regex.Pattern" factory-method="compile">
   <constructor-arg value="sshexclude(\d+)" />
</bean>

Autowireを受け取る BeanPattern

@Autowired
Pattern pattern;

次にMatcher#matches、数字を抽出するために使用します

String str = "sshexclude2";
Matcher matcher = pattern.matcher(str);
if (matcher.matches()) {
   String newString = "ssh" + matcher.group(1);
}

一致が完全に一致するため、行頭アンカーと行末アンカーがドロップされることに注意してくださいString

于 2013-06-05T01:15:07.493 に答える