带有 = 和 ; 的正则表达式

2022-09-02 00:51:13

我正在尝试使用正则表达式来查找所有以等号()开头并以分号()结尾的子字符串,其间有任意数量的字符。它应该是这样的东西=;=*;

由于某种原因,等价物没有注册。是否有某种转义字符会使正则表达式注意到我的等号?

我正在用Java工作,如果这与这个问题有任何关系的话。


答案 1

这可能是你要找的。您需要指定要应用星号的字符集或通配符。

"=([^;]*);"

您还可以使用不情愿的量词:

"=(.*?);"

使用括号,您现在有组。我相信第一组是整个匹配项,并且是括号内的组。group[1]

代码可能如下所示:

Regex r = new Regex("=([^;]*);");
Match m = r.Match(yourData);
while (m.Success) {
    string match = m.Groups[1];
    // match should be the text between the '=' and the ';'.
}

答案 2

这将查找“任意数量的 = 符号,包括 0”

=*;

如果你想要“=后跟任意数量的其他字符”,你想要

=.*;

但是,这将贪婪地匹配 - 如果你想要懒惰匹配(以便在找到下一个分号时停止一个组),你可能想要:

=.*?;