JAVA正则表达式识别字符串“string”或字符串中的字符“char”

问题描述 投票:0回答:1

所以,我面临以下问题:

我得到的字符串是“string”或“char”的形式。简而言之,他们带着自己的“”和“”而来。当我的代码中的字符串变量将它们存储在本身中时,它们看起来像这样“\”string\””和“\'char\'”。

(我还得到了很多不同格式的值,例如十六进制、八进制和整数。我使用 java 正则表达式来识别它们,并且我成功地做到了这一点。唯一的问题是字符串和字符值。)

我想使用java正则表达式来区分它们并获取不带所有“”和''的字符和字符串的值。

以下是我用来识别字符的模式,但它似乎不起作用。

Pattern charPattern = Pattern.compile("\s*[\'][\S\s][\']\s*");

Pattern charPattern2 = Pattern.compile("\s*['][\S\s][']\s*");

我期望的是该模式将能够识别这种性质的字符“char”。之后我可以将 \' 替换为空白以获得主要值。

有人可以帮忙吗?

java regex string parsing char
1个回答
0
投票

...当我的代码中的字符串变量将它们存储在本身中时,它们看起来像这样“\”string\””和“\'char\'”。 ...

...我想使用java正则表达式来区分它们并获取没有所有“”和''的字符和字符串的值。 ...

您可以利用 look-around 语法来断言这些值。

((?<=\").+?(?=\")|(?<=').+?(?='))

这是使用 PatternMatcher 类的示例。

String s = "123 \"abc\" 456 def '7'89";
Pattern p = Pattern.compile("((?<=\").+?(?=\")|(?<=').+?(?='))");
Matcher m = p.matcher(s);
while (m.find()) System.out.println(m.group(1));

输出

abc
7
© www.soinside.com 2019 - 2024. All rights reserved.