当前位置: 首页 > 知识库问答 >
问题:

如何检查regex中的字符串引号

羊新翰
2023-03-14

在我的应用程序中,我可以接受如下格式的字符串:

'key':'value'
'key1':'value1'
'key2':'value2'

现在我想写一个regex模式来检查这个格式,所以我写这个模式:

/^'(.*)'(:{1})'(.*)?'($|\n)/gm

https://regex101.com/r/oM1qO9/3

这个模式可以工作,但如果我将字符串更改为下面的示例,请再次工作,因为选择第一个引号和最后一个引号,这样字符串就与模式匹配。

'key':'value','key1':'value1' 'key2':'value2'

https://regex101.com/r/oM1qO9/4

共有3个答案

孙钱青
2023-03-14

全局匹配

'(?<key>[^']+)':'(?<value>[^']+)'

匹配您的所有示例并为您提供命名结果。

检查regex101。通用域名格式

曹钊
2023-03-14

使用“([^'])”\s*:\s*“([^']*)”:
首先它匹配任何不包含“一对之间”的非空字符串,然后匹配任何数量的空格、冒号和任何数量的空格,最后它匹配另一个可能不包含“一对之间”的空字符串。

我假设您只想捕获键和值,而不是冒号,因此我删除了该捕获组。

https://regex101.com/r/nxVAkB/3

公羊嘉
2023-03-14

<代码>* 模式”尽可能多地匹配除换行符以外的任何0个字符:从当前位置到行尾,使用它在到达行尾的过程中找到的所有字符。即使您使用<代码>* 模式”(code>pattern),一个懒惰的量化点,它仍将通过'查找有效匹配项(至少有4个'字符的整行)。

因此,您需要在这里使用否定字符类,[^'],它匹配除'之外的任何字符。

/^'([^']*)':'([^']*)'$/

或-禁止空键名称:

/^'([^']+)':'([^']*)'$/

或-不允许空名称和值:

/^'([^']+)':'([^']+)'$/

细节

  • ^-字符串的开始
  • '-撇号
  • ([^']*)-组1:除'
  • 之外的任何0个字符
  • ':'-字面子串':'
  • ([^']*)-组2:除'
  • 之外的任何0个字符
  • '$-字符串末尾的'

请参阅regex演示。

请注意,匹配0次或更多次。如果需要至少匹配一个,请改用。

要允许使用可选的空格,请在需要的地方添加*。E、 例如,您可以使用

/^\s*'([^']*)'\s*:\s*'([^']*)'\s*$/

查看此正则表达式演示。

 类似资料:
  • 问题内容: 使用正则表达式的python中的代码可以执行类似这样的操作 谢谢 问题答案: 这是您需要做的所有事情: 正如叶立昂指出:(我几乎引用) 是的“非贪婪”版本。它使正则表达式匹配的字符数最少,而不是最多。贪婪的版本会给出字符串;非贪婪版本‘String 1,String 2,String3’ 另外(再次使用Johan,),如果您想接受空字符串,请更改为。星号表示零个或多个-加号表示至少一个

  • 本文向大家介绍如何在JSP中检查指定子字符串的字符串中的索引?,包括了如何在JSP中检查指定子字符串的字符串中的索引?的使用技巧和注意事项,需要的朋友参考一下 的FN:的indexOf()函数返回指定的子串中的索引。 语法 该FN:的indexOf()函数的语法如下- 示例 以下是解释fn:indexOf()函数功能的示例- 您将收到以下结果-

  • 问题内容: 如果字符串中除了下划线以外不包含任何特殊字符,则只能在其程序中使用。我该如何检查? 我尝试使用unicodedata库。但是特殊字符只是被标准字符所代替。 问题答案: 您可以像这样使用和运行 用这条线 我们正在准备不允许使用的标点符号列表。如您所愿,我们正在从列表中删除并准备新的。因为在集合中查找速度更快。 如果至少一个字符位于中,则函数将返回。 编辑: 如评论中所述,这是正则表达式解

  • 例如:当我通过->不要:它工作正常 但是当我通过->don''t:它不正常工作时,最终输出变成了don'''t 我只想把单引号转换成双引号。我怎么能这么做?

  • 为什么下面的方法只检查提供的字符串中的第一个字符? 例如,以下字符串返回false:“abc”但“abc”返回true。

  • 问题内容: 在我的应用程序中,我从LDAP获取用户信息,有时完整的用户名使用了错误的字符集。例如: 它也可以是英语或俄语,并可以正确显示。如果用户名更改,它将在数据库中更新。即使我更改数据库中的值,它也无法解决问题。 我可以在保存之前修复此问题 但是,如果我将它用于包含俄语字符的字符串(例如,“Тест61Тестович61”),则会得到类似“ ??? 61 ??????? 61”的信息。 您能