我很难为这个字符串创建一个正则表达式。我需要:
1.提取Property后面的单词,直到&
1.提取类别后的单词,直到&
1.创建一个正则表达式来匹配从“cat”到“modifiedBy”之前的所有内容
"cat":"Property : TikTok Videos & Category : Insta Videos & User Impact: TBD & User Minutes :
18","modifiedBy"
字符串
我现在的regex是:
"cat":"Property : (?P<property>\w+.*?) & Category : (?P<category>\w+)?
型
1.这可以将“属性”正确命名为“TikTok视频”。
1.但是命名为“Category”的正则表达式只显示单词“Insta”。如果我在(?P\w+中添加一个+,那么它最终会一直消耗到字符串的结尾。
1.至于从“cat”到“modified”之前的最后一个逗号的整个字符串,我不知道如何捕获它。
所以最终的结果是:
- property = TIkTok视频
1.类别= Insta视频 - Entire_string =“cat”:“属性:TikTok视频&类别:Insta视频&用户影响:待定&用户分钟数:18”
2条答案
按热度按时间vs3odd8k1#
“.
字符串
或者更准确地说。
型
创建一个正则表达式来匹配从“cat”到“modifiedBy”之前的所有内容.
.至于消耗从“cat”到“modified”之前的最后一个逗号的整个字符串,我不知道如何捕获它。
要 * 匹配 * 值,请使用 *look-around**语法 *。
型
并且,要 * 捕获 * 值,只需提供文本。
型
这里有一个例子。
型
输出
型
iugsix8n2#
您可以使用一个正则表达式使用前瞻Assert来完成所有这些。
字符串
https://regex101.com/r/gdM2q1/1
扩展/格式化
型
如果你需要使用
"cat"
文本,使用这个。这样做是为了将当前位置移动到最后一组类别和属性文本之后,
(虽然不能保证)。你还需要添加
m
多行修饰符(?sm)
。型
https://regex101.com/r/tZEm5K/1的