我正在尝试从字符串中提取部分文本。我需要先抓取所有字符" (test)"
第一个出现之前(注意第一个括号前的空格),但不包括" (test)"
部分本身。
我正在测试的字符串:
"14 asdasddasddasdas twetwe .e.wrwe r342#¤¤¤¤ 822 (test) (test) (test)"
我正在使用模式^.+(?= \(test\))
,但显然这会匹配所有内容,直到最后 " (test)"
出现。我希望它匹配字符串:
"14 asdasddasddasdas twetwe .e.wrwe r342#¤¤¤¤ 822 "
我在这里做错了什么?
答案 0 :(得分:1)
+
符号表示“一次或多次 - 最好是尽可能多次”。 (这是“贪婪的”。)你需要使用特殊的“nongreedy”或“懒惰”等同物,+?
,这意味着“一次或多次 - 最好是几次次”。 (注意:不要混淆使用?
表示“零或一次 - 并且比零更好一次”。)因此,您的模式将是:
^.+?(?= \(test\))