【发布时间】:2013-12-17 04:09:43
【问题描述】:
我想将一个句子拆分为多个字符之一(如下所列)。我的正则表达式能够基于大多数字符进行拆分,但不能基于 '[', ']' (打开和关闭方括号)。如果我将字符串 SPECIAL_CHARACTERS_REGEX 更改为 [ :;'=\\()!-\\[\\]],它将开始拆分字符串中的整数,而不是拆分方括号。如何在方括号而不是整数上拆分正则表达式('[]' 表示所有整数)。
另一个相关问题,有没有办法也从字符串中拆分数字?例如。 9pm 应拆分为9 和pm。
This:
private static final String SPECIAL_CHARACTERS_REGEX = "[ :;'=\\()!-]";
String rawMessage = "let's meet tomorrow at 9:30p? 7-8pm? i=you go (no Go!) [to do !]"
String[] tokens = rawMessage.split(SPECIAL_CHARACTERS_REGEX);
Gives:
Input: let's meet tomorrow at 9:30p? 7-8pm? i=you go (no Go!) [to do !]
output: [let, s, meet, tomorrow, at, 9, 30p?, 7, 8pm?, i, you, go, , no, Go, , , [to, do, , ]]
还有,
This:
private static final String SPECIAL_CHARACTERS_REGEX = "[ :;'=\\()!-\\[\\]]";
String rawMessage = "let's meet tomorrow at 9:30p? 7-8pm? i=you go (no Go!) [to do !]"
String[] tokens = rawMessage.split(SPECIAL_CHARACTERS_REGEX);
Gives:
let's meet tomorrow at 9:30p? 7-8pm? i=you go (no Go!) [to do !]
[let, s, meet, tomorrow, at, , , , , p, , , , , pm, , i, you, go, , no, , o, , , , to, do]
预期输出:
{"let", "s", "meet", "tomorrow", "at", "9", "30", "p", "7", "8", "pm", "i", "you", "go", "no", "Go", "to", "do"}
【问题讨论】:
-
你的预期输出是什么?
-
[和]在 reg exp 中具有特殊含义,如果您想将它们用作匹配的一部分,则需要对其进行转义 -
我已经在帖子中添加了预期的输出。
-
如何从字符串中拆分数字?例如。 “9pm”也需要拆分为“9”和“pm”。谢谢!