从这段文字:
[1] "Percentage of Participants Who Achieved a 75% Improvement (Response) in the Psoriasis Area Severity Index (PASI-75) at Week 16 From Baseline"
[3] "Percentage of Participants Who Achieved a Static Physician Global Assessment (sPGA) Score of Clear (0) or Almost Clear (1) With at Least 2 Points Reduction From Baseline"
[15] "Change From Baseline in the Mental Component Summary (MSC) Score of the Medical Outcome Study Short Form 36-item (SF-36) Health Survey Version 2.0 at Week 16"
我想匹配:PASI-75,sPGA,MSC,SF-36,所以不是'响应',不是(1)也不是(0)。
我想要使用的正则表达式应该是这样的:
\([a-zA-Z0-9-]*&[A-Z]{2,}\)
但不知道如何在此处表达&
。一些线程建议(?=query1)(?=query2)
,但它在这里不起作用。
答案 0 :(得分:3)
尝试\([^\)]*[A-Z]{2}[^\)]*\)
匹配(
,零个或多个非)
字符,两个大写字母,零个或多个非)
个字符和一个)
。
允许非连续大写的替代方案,但仍然限制匹配单个词:
\([^\)]*[A-Z][^\)]*[A-Z][^\)]*\)
匹配(
,零个或多个非)
字符,一个大写字母,零个或其他非)
字符,一个大写字母,零或更多非)
字符和)
。
答案 1 :(得分:1)
假设(从你的例子中)你想要匹配括号内的任何非空格字符,我会说最简单的解决方案是:
\(\S*[A-Z]{2}\S*\)
答案 2 :(得分:-2)
你想要的是lookahead。 正则表达式引擎将首先尝试匹配两个大写字母。 像这样:
\b\((?=[A-Z]{2})[a-zA-Z0-9]*\)\b
(?= [A-Z] {2})告诉引擎先查找两个大写字母。 如果它找不到两个首都,它将跳过整个单词。