我有三种文本格式:
理想情况下,我希望能够在任何情况下提取所有群体,例如Dan、3、52和56,我目前有:
/(\S*)\s(\d*):(\d*)-(\d*)($|,\s(\d*):(\d*)-(\d*))/gmix..which可以工作,但不能很好地捕捉到第二种情况。是否有更好/更有效的方法来做到这一点?
发布于 2014-12-17 00:57:44
试试这个:((?:\d*\s)?(?:\S*))\s(\d*):(\d*)-(\d*)(?:,\s(\d*):(\d*)-(\d*))?,或者,作为java字符串:"((?:\\d*\\s)?(?:\\S*))\\s(\\d*):(\\d*)-(\\d*)(?:,\\s(\\d*):(\\d*)-(\\d*))?"
好的,刚刚编辑好了,“2 Sam”将在同一个组中
注意:但是,最好的方法是知道输入字符串中每个元素的精确规范(如果可能的话),而不是只使用3种可能性。
发布于 2014-12-17 00:56:15
那这个呢?
([\w ]+) (?:(?:(\d+?):(\d+?)\-(\d+))(?:, )?)*只使用/g (全局)修饰符?
下面是一个有解释的regex101:https://regex101.com/r/pP5pY3/1
https://stackoverflow.com/questions/27516470
复制相似问题