java - 使用正则表达式将嵌套字符与其含义相匹配

标签 java regex string

首先,对于正则表达式我还是个 child 。

我需要将嵌套字符与其存储在数组中的含义进行匹配。

例如,给定这个字符串

{(((x)))}

我需要使用 Regexp 或 oldschool for 循环将其转换为此内容

Inside curly braces, inside three parenthesis, one x mark, closed by three parenthesis, closed by curly braces

问题是我需要解析许多嵌套字符,包括 unicode 符号,并且我想知道是否有使用正则表达式的最佳实践。

更多示例:

输入字符串始终是回文。

{(#x#)} 
{{{{*}}}}
<<<x>>>

将从静态数组转换为它们的定义

String[][] openers = { {"{","curly"} , {"(","parenthesis" }, {"<","inequality"} };
String[][] insiders = { {"x","x mark"}, {"#","pound"}, {"*","star"} };

进入这些

curly parenthesis pound x mark pound parenthesis curly

four curly star four curly

three inequality x mark three inequality

顺便说一句,这将在 Java 中完成。

如有任何帮助,我们将不胜感激。

最佳答案

我不会使用正则表达式,而是使用一个简单的“映射”,即 String -> String,例如:

Map<String,String> explanations = new HashMap<String,String>();
explanations.put("{","inside curly braces");

然后,您可以对给定字符串实现简单的迭代,该迭代采用单个字符并转换它们。

要实现“内部三括号”,您可以使用Java国际化系统,因此您可以编写“内部{0}括号”,然后在解析器中,当您多次遇到相同的字符时,递增计数器并用它来正确格式化字符串。鉴于语法非常强大,您可以轻松处理单数、复数等。

关于java - 使用正则表达式将嵌套字符与其含义相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7420013/

相关文章:

Java/Swing : ownership of the system clipboard

java - 在 spring boot 中使用 PostGIS 地理点和 hibernate spatial 5

python:如何在一次搜索中找到\r\n\r\n

java - 如何使用 Java 正则表达式从路径中删除 id?

c - 查找字符串是否是 C 中的迭代子字符串算法?

java - Java HashMap 问题中的 Zuul 重制

java - 防止jsp页面重复提交表单

regex - Django 站点地图索引分页 URL 格式

javascript - 从字符串中剥离一些字符

string - 尝试调用字符串值