假设我有如下JSON字符串:
[
{
"key1": "value",
"key2": {
"word1.word2.word3.word4.interestingPart": {
"key1": "value",
"key2": "value"
}
},
"key3": "value"
},
{
"key1": "value",
"key2": {
"word1.word2.word3.word4.word5.word6.thisIsAlsoAnInterestingPart": {
"key1": "value",
"key2": "value"
}
},
"key3": "value"
}
]
如何使用正则表达式匹配密钥中的最后一个“有趣部分”?我可以期望密钥总是以相同的方式开始(word1、word2、word3、word4)。但是,可能有一些我不想包含在匹配中的内容因文件而异(word5、word6)。
到目前为止,我的想法是:
.+(\..+)+(?=")
https://regex101.com/r/BjOcfl/1
它与最后一部分相匹配,但也包括一个前期。我希望它只与单词匹配,而不需要其他任何东西。
更新:我使用的Python正则表达式规则在我的情况下显然不起作用。使用Python,我的正则表达式将最后一部分与一个额外的句点匹配,但使用JavaScript规则,它将匹配整个键。
https://regex101.com/r/0VRhl5/2
如果不能使用解析器,则可以匹配一个“
,然后匹配除”
以外的任何字符,或者使用一个否定字符类匹配一个空格字符
然后让模式回溯到最后一个点,并捕获组中的最后一部分,直到第一次出现"
"[^\s"]+\.([^"\s]+)":\s*{
Regex演示
另一个选项仅匹配单词字符,并在非捕获组中重复匹配一个点,后跟单词字符1次或多次
"\w+(?:\.\w+)+\.(\w+)":\s*{
Regex演示
例如,我们有一个字符串:asd/asd/asd/1#s_ 我需要匹配以下部分:/asd/1#s_或asd/1#s_如何使用普通正则表达式? 我试过像这样的消极前瞻,但它不起作用 它匹配这个“前缀/asd/1#s_”,我需要匹配“/asd/1#s_”中的这个“/asd/1#”,我需要匹配“/asd/1#s_”,而没有所有前面的 /asd/'s 匹配应该与普通正则表达式没有任何编程语言的任何帮助函数h
所需匹配: 这个regex只匹配字符串第一个实例之后的所有内容: 思想?
在字符串中分隔符的最后一次出现时拆分字符串的推荐Python习惯用法是什么?例如: 接受第二个参数,该参数是要拆分的分隔符的引用。与常规列表索引一样,表示从末尾开始的最后一个。如何做到这一点?
null 无效示例: 关于只有当值是唯一的时,我如何匹配有什么建议吗?
我在创建正则表达式以匹配这些内置组时需要一些帮助: 我尝试了以下匹配模式,但它给了我一些错误: 错误代码: 这是预览:https://regex101.com/r/WKal3Y/1
问题内容: 对于在字符串中 最后一次 出现定界符时拆分字符串的建议Python惯用法是什么?例: 接受第二个参数,即要分割的分隔符的出现。像常规列表索引一样,表示末尾的末尾。如何才能做到这一点? 问题答案: 使用 或代替: 可让您指定分割次数,而仅分割一次,但总是返回固定数量的元素(前缀,定界符和后缀),并且对于单个分割情况而言更快。 演示: 两种方法都从字符串的右侧开始拆分;通过将最大值作为第二