我试图匹配一些unicode字符序列:
Pattern pattern = Pattern.compile("\\u05[dDeE][0-9a-fA-F]{2,}");
String text = "\\n \\u05db\\u05d3\\u05d5\\u05e8\\u05d2\\u05dc\\n <\\/span>\\n<br style=\\";
Matcher match = pattern.matcher(text);
Run Code Online (Sandbox Code Playgroud)
但这样做会产生以下异常:
Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal Unicode escape sequence near index 4
\u05[dDeE][0-9a-fA-F]+
^
Run Code Online (Sandbox Code Playgroud)
我如何使用仍然使用正则表达式与一些正则表达式字符(如"[")匹配unicode?
编辑:我正在尝试解析一些文本.某处的文本有一系列Unicode字符,我知道它们的代码范围.
Edit2:我现在正在使用范围:[\\u05d0-\\u05ea]{2,}但仍然无法匹配上面的文本
编辑3:好的,现在它正在工作,问题是我在正则表达式和文本中使用了两个反斜杠而不是一个反斜杠.对此的解决方案是,假设我知道将有两个或更多的字符:
[\u05d0-\u05ea]{2,}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用realloc从用户那里获得无限的输入.这是我到目前为止所做的:
int getCharactersFromUser(char* arr,char terminator)
{
char c = getch();
int length =0;
while(c!=terminator)
{
arr = realloc(arr, sizeof (arr)*(++length));
arr[length-1]=c;
c = getch();
}
return length;
}
Run Code Online (Sandbox Code Playgroud)
我用这样的arr调用这个方法:char *unknownArr = calloc(0,sizeof *unknownArr);
int length = getCharactersFromUser(&unknownArr,TEMINATOR_FOR_LIST);
这TEMINATOR_FOR_LIST是eof
我遇到这条线路有问题:
ut_slot = malloc(tab_size * sizeof ut_slot_t);
这些是头文件中定义的变量:
typedef struct _ut_slot {
...
...
} ut_slot_t, *ut_slot;
错误写在标题,任何帮助?