正则表达式从数字到特定字符

时间:2011-03-06 02:46:57

标签: regex

我可以使用字符作为正则表达式中范围的分隔符吗? 例如,如果我希望范围从索引1开始并以字符$结尾。我怎么能这样做?

{1,我在这里放什么}

2 个答案:

答案 0 :(得分:2)

此正则表达式将匹配任何字母,数字或$符号。这就是你所需要的吗?

[A-Za-z0-9\$]

<强>更新

如果OP的评论与“$ CM-PRQRPMD $”匹配,请使用以下正则表达式:

\$[A-Z-]+\$

答案 1 :(得分:1)

你没有。只需使用+?\$即可。例如,.+?\$匹配至少一个字符,包括第一个$。 ($不能是第一个字符;为此,只需使用.*?\$。)

如果要排除$,请将其包装在先行断言中:.+?(?=\$)

编辑(以回应澄清):要匹配一对$之间的标识符,并假设$属于标识符,您只需编写此内容即可:\$(.*?)\$。括号将创建一个捕获组,以便从匹配中排除$。如果分隔符不是标识符的一部分,并且您需要找到多个匹配项 - 例如$AAA$BBB$ - 那么您将需要使用零宽度断言:(?<\$)(.*?)(?=\$)这样在匹配时不会吸收$个。