捕获正则表达式中的空实例

时间:2017-01-19 04:30:18

标签: regex

如果我的问题听起来很基本,请原谅。我有一个包含四个值的文本字符串:

  

字段A |字段B |字段C |字段D

获取输入时,这四个值中的一个或多个可以留空,例如:

  

字段A ||字段C |字段D

或者

  

字段A ||字段C ||

我需要编写一个可以正确捕获值并将其分配给特定存储桶的正则表达式。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

根据您使用的语言,它们可能略有不同。

以下实施基于//@target "indesign" app.findGrepPreferences = NothingEnum.nothing; app.changeGrepPreferences = NothingEnum.nothing; app.findGrepPreferences.findWhat = "^\\s?(.)"; // -> this line app.changeGrepPreferences.changeTo = "$1"; app.documents[0].changeGrep(); 。基本上你所追求的模式就像javascript

这意味着您捕获/(.*?)\|(.*?)\|(.*?)\|(.*)/所有内容并指定. - 这意味着非贪婪捕获,直到看到第一个*?管道。

由于我们知道将有4个组,而最后一个没有|管道,因此通过执行|对于最后一个集合来说已经足够了,因为它只是意味着字符串上的其他所有内容。

试试这个:

(.*)