我有这样的字符串:
HAHDFKDLFDAFHDKFJL/ABCD//NAME/I WANT TO EXTRACT THIS/JJJJ//NAME/blah blah blah
在其他时候,字符串看起来像这样
HAHDFKDLFDAFHDKFJL/ABCD//NAME/I WANT TO EXTRACT THIS
我要拉字符串I WANT TO EXTRACT THIS
我已建立正则表达式以提取第一个示例,但无法弄清楚如何提取第二个示例(当我要提取的字符串后没有'/'时的情况)。有人可以帮助我调整代码以拉出第二个示例吗?
re = prxparse('/\/ABCD\/\/NAME\/(.*?)\/(.*?)\//s');
if prxmatch(re, string_data) then
do;
extracted_string = prxposn(re, 1, string_data);
end;
尝试此正则表达式:
set test;
re = prxparse('/\/ABCD\/\/NAME\/(.*?)(\/|$)/s');
if prxmatch(re, string_data) then
do;
extracted_string = prxposn(re, 1, string_data);
end;
您可以用$匹配行尾
re = prxparse('/\/ABCD\/\/NAME\/(.*?)$/s');
此匹配两种情况:
re = prxparse('/\/ABCD\/\/NAME\/(.*?)($|\/)/s');