根据字符串的位置匹配内容的最佳方法是什么?
例如:
Name - Date - OtherName, DiffrentName - ID - RandomText1 - RandomText2
我想要一个正则表达式,它会做类似的事情:选择( - )number2和( - )number3之间的部分。所以它会选择OtherName, DiffrentName
或选择( - )number4和( - )number5之间的部分。然后选择RandomText1
我非常愚蠢和丑陋的解决方案是这样的:^.*( -)(.*)( - ).*( - ).*( - )
那么我将替换为\ 2,以便我得到所需的结果
答案 0 :(得分:1)
要匹配第一个,第二个等...您可以使用像{n}
这样的量词,其中n是设置重复一个或多个单词字符\w+
后跟短划线的重复次数-
和空格。
然后使用\K
重置报告的匹配的起始点,并且使用短划线[^-]+
一次或多次匹配正向前导,其中断言后面是空格和短划线或结束第$
行。