首先,对于正则表达式我还是个 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/