Java 如何使用正则表达式获取特定字符之前的字符?

Java 如何使用正则表达式获取特定字符之前的字符?,java,regex,string,Java,Regex,String,我有一个字符串:“2x+10=100”。 现在我想知道100之前的字符是什么。 我怎样才能用正则表达式得到这个 提前谢谢。请尝试以下内容。它将在100之前给出1个字符 .(?=100) 或者,若您需要匹配最后100个字符之前的字符(考虑到若有多个100次出现,并且您需要最后100个字符的值),请尝试以下操作 .(?=100$) 简要说明:在这里使用正向向前/向前方法,并确保其中是否有100个(?=100),然后提及,以获得100之前的第一个字符。此正则表达式查找“100”之前的任何单个字符

我有一个字符串:
“2x+10=100”
。 现在我想知道100之前的字符是什么。 我怎样才能用正则表达式得到这个


提前谢谢。

请尝试以下内容。它将在100之前给出1个字符

.(?=100)

或者,若您需要匹配最后100个字符之前的字符(考虑到若有多个100次出现,并且您需要最后100个字符的值),请尝试以下操作

.(?=100$)

简要说明:在这里使用正向向前/向前方法,并确保其中是否有100个
(?=100)
,然后提及
,以获得100之前的第一个字符。

此正则表达式查找“100”之前的任何单个字符,并将其捕获到第一组:
(.)100
。括号表示捕获组。点表示任何单个字符。

其他回答是正确的,
(.)100
是此匹配所需的正则表达式,但我发现有时使用正则表达式的细节会让新用户感到困惑。因为您的问题是用Java标记的,所以下面是一个Java代码示例,它显示了使用的正则表达式,基于

.(?=100)
您还可以从帮助您使用regex并学习如何构建自己的模式的网站中获益。

您可以使用捕获组获取匹配字符串的一部分。例如,此代码:

Matcher matcher = Pattern.compile("([a-z]+)[0-9]+").matcher("abc456");
assert matcher.matches();
System.out.println(matcher.group(1));
打印出:

abc

另请参见:。

欢迎来到SO,我们始终建议您在帖子中发布3件简单的事情。1-输入样本,2-输出样本,3-你为解决自己的问题所付出的努力,请更新你的帖子,然后让我们知道?你想要100之前的一切吗?你必须使用正则表达式吗<代码>索引of
string.substring(-1+string.indexOf(“100”)、string.indexOf(“100”))
前面只有一个字符。为什么要使用正则表达式?这是对蚊子的核弹。它打印的是
=100
,而不仅仅是
100
之前的字符。您是想打印组(1)?谢谢您的更正!这正是我想要提供一个更完整的代码示例而不是仅仅(.)100的原因,因为这样的错误。