正则表达式提取 tcl 中模式的所有匹配项的问题
Issue with regular expression extracting all matches for a pattern in tcl
我正在尝试提取字符串中某个模式的所有匹配项。该字符串例如:"r[0] or c[0]" 在 tcl 中,但匹配的字符串不是我所期望的。
我尝试使用 regexp -all -inline 来匹配字符串中与某个模式匹配的所有子字符串。
%set p "r\[0\] and c\[0\]"
%r[0] and c[0]
% regexp ".\[\d+\]" $p
%1
% set x [regexp -all -inline ".\[\d+\]" $p]
%{[0} {[0}
预期结果是 r[0] c[0] 但结果是 [0 [0
您没有指定想要获得的结果类型。正如您所写的那样,您想要匹配在给定字符串中找到的每个 字母 [数字],在 [] 中只有一个字母和一个数字。
您可以使用此正则表达式来获取它:
([a-zA-Z]\[\d\])
如果您只需要小写字母,请删除 A-Z。
从现在开始,您可以在使用前使用 https://www.regextester.com/ 检查您的正则表达式。
希望你觉得这有用!
我正在尝试提取字符串中某个模式的所有匹配项。该字符串例如:"r[0] or c[0]" 在 tcl 中,但匹配的字符串不是我所期望的。
我尝试使用 regexp -all -inline 来匹配字符串中与某个模式匹配的所有子字符串。
%set p "r\[0\] and c\[0\]"
%r[0] and c[0]
% regexp ".\[\d+\]" $p
%1
% set x [regexp -all -inline ".\[\d+\]" $p]
%{[0} {[0}
预期结果是 r[0] c[0] 但结果是 [0 [0
您没有指定想要获得的结果类型。正如您所写的那样,您想要匹配在给定字符串中找到的每个 字母 [数字],在 [] 中只有一个字母和一个数字。 您可以使用此正则表达式来获取它:
([a-zA-Z]\[\d\])
如果您只需要小写字母,请删除 A-Z。
从现在开始,您可以在使用前使用 https://www.regextester.com/ 检查您的正则表达式。
希望你觉得这有用!