我可以使用字符作为正则表达式中范围的分隔符吗? 例如,如果我希望范围从索引1开始并以字符$结尾。我怎么能这样做?
{1,我在这里放什么}
答案 0 :(得分:2)
此正则表达式将匹配任何字母,数字或$符号。这就是你所需要的吗?
[A-Za-z0-9\$]
<强>更新强>:
如果OP的评论与“$ CM-PRQRPMD $”匹配,请使用以下正则表达式:
\$[A-Z-]+\$
答案 1 :(得分:1)
你没有。只需使用+?\$
即可。例如,.+?\$
匹配至少一个字符,包括第一个$
。 ($
不能是第一个字符;为此,只需使用.*?\$
。)
如果要排除$
,请将其包装在先行断言中:.+?(?=\$)
。
编辑(以回应澄清):要匹配一对$
之间的标识符,并假设$
属于标识符,您只需编写此内容即可:\$(.*?)\$
。括号将创建一个捕获组,以便从匹配中排除$
。如果分隔符不是标识符的一部分,并且您需要找到多个匹配项 - 例如$AAA$BBB$
- 那么您将需要使用零宽度断言:(?<\$)(.*?)(?=\$)
这样在匹配时不会吸收$
个。