我有一个像这样的字符串
Section 78(1) of the blabla
这些是我的正则表达式
\b\s(?!\b(\d{1,3}|\d{1,2}[a-zA-Z]|\d{5,})\b)\b\S*
预期输出为:of the blabla
此正则表达式有效,但由于(),它不排除“ of”。谁能帮我?谢谢
答案 0 :(得分:0)
尝试以下模式:firebaseRemoteConfig.setConfigSettingsAsync(
FirebaseRemoteConfigSettings.Builder().setMinimumFetchIntervalInSeconds(3600L)
.build())
说明:
.+\d\)?
-与任何字符匹配一次或多次
.+
-匹配数字
\d
-匹配\)?
零次或一次
由于)
的贪婪,它将匹配到最后一位,如果放在方括号中,则匹配后面的括号。
或者使用+
然后所需的输出在第一个捕获组中。
答案 1 :(得分:0)
似乎您需要更改的只是在\b
之前删除\S*
并将\S*
替换为.+
或.*
(如果匹配可以是一个空字符串)。
\s(?!\b(?:\d{1,3}|\d{1,2}[a-zA-Z]|\d{5,})\b)(.+)
请参见regex demo,获取第1组的值。请注意,我将负前瞻中的第一组匹配数字转换为非捕获组,以避免在结果匹配列表中出现混乱。
Dim r As New Regex("\s(?!\b(?:\d{1,3}|\d{1,2}[a-zA-Z]|\d{5,})\b)(.+)")
Dim s As String
s = "Section 78(1) of the blabla"
For Each m As Match In r.Matches(s)
Console.WriteLine(m.Groups(1).Value)
Next
结果:of the blabla
。