正则表达式使用不带引号的键/值对中的空格分割字符串

Preben

我正在努力寻找正确的正则表达式来解析包含键/值对的字符串。当字符串不被双引号引起来时,应在空格处进行分割。

示例字符串:

2013-10-26    15:16:38:011+0200 name="twitter-message" from_user="MyUser" in_reply_to="null" start_time="Sat Oct 26 15:16:21 CEST 2013" event_id="394090123278974976" text="Some text" retweet_count="1393"

所需的输出应为

2013-10-26
15:16:38:011+0200
name="twitter-message"
from_user="MyUser" 
in_reply_to="null" 
start_time="Sat Oct 26 15:16:21 CEST 2013" 
event_id="394090123278974976" 
text="Some text" 
retweet_count="1393"

我找到了这个答案,使我接近期望的结果Regex,当不在正则表达式的单引号或双引号引起来时,使用空格分割字符串

Matcher m = Pattern.compile("[^\\s\"']+|\"[^\"]*\"|'[^']*'").matcher(str);
        while (m.find())
            list.add(m.group());

给出以下列表:

2013-10-26
15:16:38:011+0200
name=
"twitter-message"
from_user=
"MyUser"
in_reply_to=
"null"
start_time=
"Sat Oct 26 15:16:21 CEST 2013"
event_id=
"394090123278974976"
text=
"Some text"
retweet_count=
"1393"

它在=符号上分割,因此仍然缺少某些内容以达到所需的输出。

普什莫

尝试与此

[^\\s=]+(=\"[^\"]+\")?
  • [^\\s=]+会发现所有不是空间的东西,=因此start_time="Sat Oct 26 15:16:21 CEST 2013"会匹配start_time一部分。
  • (=\"[^\"]+\")?是可选的,它将与="zzz"part(在z不能匹配的地方"匹配

Matcher m = Pattern.compile("[^\\s=]+(=\"[^\"]+\")?").matcher(str);
while (m.find())
    System.out.println(m.group());

输出:

2013-10-26
15:16:38:011+0200
name="twitter-message"
from_user="MyUser"
in_reply_to="null"
start_time="Sat Oct 26 15:16:21 CEST 2013"
event_id="394090123278974976"
text="Some text"
retweet_count="1393"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用正则表达式捕获不带引号的双引号内的字符串

来自分类Dev

正则表达式用_(Sublime)替换带引号的字符串中的空格

来自分类Dev

正则表达式可以匹配任何带引号的字符串或特定的不带引号的字符串

来自分类Dev

正则表达式以匹配变量或字符串的值(带或不带引号)

来自分类Dev

java-正则表达式使用空格分割字符串,但不考虑双引号或单引号

来自分类Dev

java-正则表达式使用空格分割字符串,但不考虑双引号或单引号

来自分类Dev

正则表达式查找带引号的字符串中的所有大括号

来自分类Dev

正则表达式查找带引号的字符串中的所有大括号

来自分类Dev

无法在ruby中使用正则表达式突出显示带引号的字符串

来自分类Dev

正则表达式检索带引号的字符串和引号字符

来自分类Dev

正则表达式处理带引号的字符串和双引号英寸

来自分类Dev

Python正则表达式将带引号的字符串与转义的单引号匹配

来自分类Dev

javascript正则表达式选择带引号的字符串,但不转义引号

来自分类Dev

正则表达式匹配忽略双引号的带引号的字符串

来自分类Dev

字符串中的正则表达式键值

来自分类Dev

使用正则表达式从输入字符串中获取键值字符串?

来自分类Dev

Java正则表达式提取不带引号的键值

来自分类Dev

Golang正则表达式替换不包括带引号的字符串

来自分类Dev

正则表达式查找带引号的字母的字符串

来自分类Dev

PHP 正则表达式提取带引号和括号的子字符串

来自分类Dev

如何使用正则表达式匹配单引号或双引号中的字符串

来自分类Dev

使用正则表达式用空格分割字符串

来自分类Dev

Perl正则表达式可对带引号或不带引号的项目进行分组,并忽略空格

来自分类Dev

正则表达式不带引号

来自分类Dev

使用正则表达式分割字符串

来自分类Dev

使用正则表达式拆分键值中的字符串

来自分类Dev

正则表达式-匹配字符串时不带前导和尾随空格

来自分类Dev

包含子字符串且不带空格的正则表达式模式

来自分类Dev

使用正则表达式将引号中的字符串转换为单个短语

Related 相关文章

  1. 1

    使用正则表达式捕获不带引号的双引号内的字符串

  2. 2

    正则表达式用_(Sublime)替换带引号的字符串中的空格

  3. 3

    正则表达式可以匹配任何带引号的字符串或特定的不带引号的字符串

  4. 4

    正则表达式以匹配变量或字符串的值(带或不带引号)

  5. 5

    java-正则表达式使用空格分割字符串,但不考虑双引号或单引号

  6. 6

    java-正则表达式使用空格分割字符串,但不考虑双引号或单引号

  7. 7

    正则表达式查找带引号的字符串中的所有大括号

  8. 8

    正则表达式查找带引号的字符串中的所有大括号

  9. 9

    无法在ruby中使用正则表达式突出显示带引号的字符串

  10. 10

    正则表达式检索带引号的字符串和引号字符

  11. 11

    正则表达式处理带引号的字符串和双引号英寸

  12. 12

    Python正则表达式将带引号的字符串与转义的单引号匹配

  13. 13

    javascript正则表达式选择带引号的字符串,但不转义引号

  14. 14

    正则表达式匹配忽略双引号的带引号的字符串

  15. 15

    字符串中的正则表达式键值

  16. 16

    使用正则表达式从输入字符串中获取键值字符串?

  17. 17

    Java正则表达式提取不带引号的键值

  18. 18

    Golang正则表达式替换不包括带引号的字符串

  19. 19

    正则表达式查找带引号的字母的字符串

  20. 20

    PHP 正则表达式提取带引号和括号的子字符串

  21. 21

    如何使用正则表达式匹配单引号或双引号中的字符串

  22. 22

    使用正则表达式用空格分割字符串

  23. 23

    Perl正则表达式可对带引号或不带引号的项目进行分组,并忽略空格

  24. 24

    正则表达式不带引号

  25. 25

    使用正则表达式分割字符串

  26. 26

    使用正则表达式拆分键值中的字符串

  27. 27

    正则表达式-匹配字符串时不带前导和尾随空格

  28. 28

    包含子字符串且不带空格的正则表达式模式

  29. 29

    使用正则表达式将引号中的字符串转换为单个短语

热门标签

归档