使用正则表达式捕获字符串内的组

时间:2015-10-21 14:20:08

标签: regex

我不太了解正则表达式,而且从我学到的东西中我无法解决我的整个问题。

我有这个字符串:

  <02> 02区块的主题之间的04学分

我只确定在开始和结束时我会[00-99]。

我想抓住开始和结束如果中间有&#34;积分在&#34;之间,系统可以有其他格式作为输入,所以我想确保捕获的这些字段将来自正确的模式。

这就是我试图做的事情:

new

我正在使用Regexr网站查看我正在做的事情,但没有成功。

1 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式:

^(\d{2})\b.*credits between.*\b(\d{2})$

请参阅regex demo

如果字符串本身包含credits between,它将匹配并捕获开头和结尾的2位数字。请注意,[\s\S]代替.可以支持换行符。

单词边界\b只是使引擎匹配数字后跟非单词字符(如果不是预期的行为,您可以删除它)。然后,您需要在末尾使用^(\d{2})\b.*credits between.*?(\d{2})$与惰性匹配.*?

如果两端数字的位数可能不同,请使用

^(\d+).*credits between.*?(\d+)$

请参阅another demo