我有这样的东西
日期;数字;标签;借方;信用;更多;
我尝试使正则表达式与日期,标签,借方或贷方分组
有一个例子:
Date; Number; Label; Debit ;; more;
但可能是:
日期;数字;标签;;信用;更多;
所以我尝试仅获得3组(不能在同一行上是贷方和借方)
我尝试了一下,但是没有用:
(.*);(?:.*);(.*);{1,2}(.*);{1,2}(?:.*);
答案 0 :(得分:0)
一个选项可能是使用3个捕获组。如果比赛在第三组的左边,你可以用一个组和一个比赛来捕捉;使用否定的character class。
如果匹配项在右侧,则可以首先匹配可选的分号:
^([^;]*);[^;]*;([^;]*);;?([^;]*)
^
字符串的开头([^;]*);
组1-先匹配;
,然后匹配;
[^;]*;
没有分组,不匹配;然后; ([^;]*);
第2组-先匹配;
,然后匹配;
;?([^;]+)
第3组,匹配可选的半冒号,然后捕获不匹配;
的组如果在分号之间也不允许任何内容,则可以改用[^;]*
。
答案 1 :(得分:0)
您不应该使用AWS.config.credentials = new AWS.CognitoIdentityCredentials({
IdentityPoolId: process.env.IdentityPoolId,
Logins: {
'xxxxxxxxx': val.token
}
})
,因为它匹配任何字符并且您不想匹配分号,而应使用.*
,它匹配除分号之外的所有字符。
生成的正则表达式为[^.]*
请参见here。