0

我正在使用下一个来源:

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

但是如果 string ="fefrefewre-rfrefrf"或 "feferefewre`rfrefrf" 我的数学 = "feferefewre"

我需要mather ="fefrefewre-rfrefrf"或“fefferefewre`rfrefrf”

如何在字符串正则表达式中添加字符“-”和“`”?

潜台词 = "fefref"- 例如

4

2 回答 2

3

除了“\p{alpha}”之外,您似乎只想匹配“-”和“`”符号。

我认为这是最直接的解决方案:

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

与其使用您似乎不太了解的 POSIX 字符类,不如将您想要允许的字符添加到[]字符类中

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

必须在-字符类中转义,除非它位于字符类的开头或结尾。

于 2013-03-03T18:20:20.593 回答