gpt4 book ai didi

json - 使用正则表达式匹配句点分隔字符串中的最后一个词

转载 作者:行者123 更新时间:2023-12-01 15:47:58 24 4
gpt4 key购买 nike

假设我有这样的 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"
}
]

如何使用正则表达式来匹配 key 中最后一个“有趣的部分”?我可以预期 key 总是以相同的方式开始(word1、word2、word3、word4)。但是,可能有一些我不想包含在匹配项中的内容因文件而异(word5、word6)。

这就是我到目前为止的想法:

.+(\..+)+(?=")

https://regex101.com/r/BjOcfl/1

它匹配最后一部分,但也包括一个前面的句点。我希望它只匹配单词而不匹配任何其他内容。

更新:我使用了 Python 正则表达式规则,这显然不适用于我的情况。使用 Python,我的正则表达式将最后一部分与一个额外的句点匹配,但使用 JavaScript 规则它匹配整个键。

https://regex101.com/r/0VRhl5/2

最佳答案

如果您不能使用解析器,您可以匹配 ",然后匹配除 " 之外的任何字符或使用 negated character class 的空白字符

然后让模式回溯到最后一个点,并捕获一组中的最后部分,直到第一次出现 "

"[^\s"]+\.([^"\s]+)":\s*{

Regex demo

另一个选项仅匹配单词字符,并在非捕获组中重复匹配点后跟单词字符 1 次或多次 "\w+(?:\.\w+)+

"\w+(?:\.\w+)+\.(\w+)":\s*{

Regex demo

关于json - 使用正则表达式匹配句点分隔字符串中的最后一个词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61114636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com