0

次のソースを使用しています。

Matcher mather = Pattern.compile("(\\p{Alnum}*" + subtext + "\\p{Alnum}*)").matcher(ssb.toString());

しかし、string ="fefrefewre-rfrefrf"または "fefrefewre`rfrefrf" の場合、私の母親 = "fefrefewre"

mather ="fefrefewre-rfrefrf"または "fefrefewre`rfrefrf"が必要です

文字列正規表現に文字「-」と「`」を追加するにはどうすればよいですか?

サブテキスト = "fefref"- たとえば

4

2 に答える 2

3

よく理解していないように見えるPOSIX文字クラスを使用するのではなく、許可したい文字を[]文字クラスに追加するだけです

Matcher mather = Pattern.compile("[a-zA-Z0-9`-]*" + subtext + "[a-zA-Z0-9`-]*").matcher(ssb.toString());

文字クラスの-先頭または末尾にない限り、文字クラスでエスケープする必要があります。

于 2013-03-03T18:20:20.593 に答える
3

「\p{alpha}」に加えて「-」および「`」記号を一致させたいだけのようです。

これが最も簡単な解決策だと思います:

Matcher mather = Pattern.compile("((\\p{Alnum}|[\\-`])*" + subtext + "(\\p{Alnum}|[\\-`])*)").matcher(ssb.toString());
于 2013-03-03T18:07:16.457 に答える