【发布时间】:2017-10-12 11:54:03
【问题描述】:
(?<=:)\s*\w+
我只想从字符串中提取comp 或 comp:
savedPosition: comp;
CURLSCHET.NREC ('qwertyuiop'): noprotect;
当在所需模式之前的任何位置存在( 或) 时,我想避免匹配noprotect 之类的情况。
【问题讨论】:
-
只是为了明确一点:您有一个多行字符串,并且您想匹配不包含
(和)的行上的特定单词?另外,你真的也想得到空匹配吗?我认为你需要\w+,而不是\w*。 -
如果该行是
: noprotect; (word),是否要提取noprotect?对于整行不应包含(和)以及一行上的word之前不应有(和)的情况,解决方案将有所不同。 -
Wiktor Stribiżew,感谢您在第一条评论中的提示。是的,如果行是
: noprotect; (word),我想提取noprotect -
这令人心碎,因为我实际上并不知道所有细节。试试
(?m)(?:^|\G)[^()\n]*?:\h*\K\w+- 这将在一行中的第一个(或)之前获取多次出现的匹配项。 -
Wiktor Stribiżew,它似乎有效。谢谢!