我在解决以下情况时遇到麻烦:
- 数据集中的患者叙述。 叙述描述了患者经历的不良事件以及药物等。 每个叙述最多可包含20,000个字符,并且最多可包含1000个叙述。
- 另一个数据集中约有2400个正则表达式。 正则表达式正在搜索特定条件
我需要使用所有正则表达式搜索所有叙述。 我们在Excel + VBA中有一个解决方案,但我想在JMP中实现某些功能,可能使用Text Explorer。 我使用Text Explorer和Customize Regex玩了一小组正则表达式,但结果却令人失望。

理想情况下,我想要的是FULL NARRATIVE列旁边的一列,其中突出显示找到的正则表达式。
我们的VBA解决方案非常快;我尝试使用JSL +进行循环和正则表达式来搜索所有正则表达式的一小部分叙述(23),而且速度非常慢。
这是带有5个正则表达式的文本资源管理器搜索的代码:
Text Explorer(
Text Columns( :FULL NARRATIVE ),
Set Regex(
Custom(
Title( "R1" ),
Example( "x" ),
Regex( "\[\bexperienc[^.]*\b(\w{4,})\b.*\bexperienc[^.]*\1\b]\" ),
Result( "\[\0]\" ),
Comment( "x" ),
Locale( "" ),
ColorStyle( 10 )
),
Custom(
Title( "R2" ),
Example( "x" ),
Regex( "\[\bexperienc[^.]*\.?[^.]*again[^.]*\.?[^.]*second[^.]*\.]\" ),
Result( "\[\0]\" ),
Comment( "x" ),
Locale( "" ),
ColorStyle( 9 )
),
Custom(
Title( "R3" ),
Example( "x" ),
Regex( "\[\bexperienc.*experienc[^.]*second[^.]*infusion[^.]*\.]\" ),
Result( "\[\0]\" ),
Comment( "x" ),
Locale( "" ),
ColorStyle( 8 )
),
Custom(
Title( "R4" ),
Example( "x" ),
Regex(
"\[\bexperienc[a-z]{0,3}\W+(\w+\W+){0,25}resolv[a-z]{0,3}\W+(\w+\W+){0,25}receiv[a-z]{0,3}\W+(\w+\W+){0,25}experienc[^.]*\.]\"
),
Result( "\[\0]\" ),
Comment( "x" ),
Locale( "" ),
ColorStyle( 7 )
),
Custom(
Title( "R5" ),
Example( "x" ),
Regex( "\[\bexperienc[^.]*again[^.]*\.]\" ),
Result( "\[\0]\" ),
Comment( "x" ),
Locale( "" ),
ColorStyle( 6 )
)
),
Layout( "Ordered" ),
Customize Regex( 0 ),
Language( "English" ),
SendToReport(
Dispatch(
{"Term and Phrase Lists"},
"",
TableBox,
{Set Summary Behavior( "Collapse" )}
)
)
);
感谢您提供有关使用文本资源管理器和/或加快正则表达式搜索的更好方法的建议。