gpt4 book ai didi

Java 正则表达式不匹配使用 Apache RE

转载 作者:行者123 更新时间:2023-11-30 11:08:03 24 4
gpt4 key购买 nike

我有这个正则表达式字符串:

^[a-zA-Z0-9\t\s\n\r!$()*,-./:;=?@`][{}_~|]+$

对于以下情况,此 RE 应返回 true:

!$()*,-./:;=?@`][{}_~|

我正在使用 Apache 的 RE,在运行匹配函数时得到 false。
我认为我的正则表达式缺少某些东西,可能是在处理特殊字符。
问题是,我的表达式有什么问题?
这是我的 RE 匹配函数:

public static String runRegularExpression(String string, String regularExpression, int parenthesis)
{
String result = null;

try
{
RE reCmd = new RE(regularExpression);

if (reCmd.match(string))
{
result = reCmd.getParen(parenthesis);
}
}
catch (Exception re)
{
}

return result;
}

最佳答案

  1. 你的正则表达式不能在字符类中间有未转义的连字符。
  2. 如果您已经有了 \s 那么就不需要匹配 \n\t 因为 \s 匹配所有空白,包括空格、制表符和换行符。
  3. [a-zA-Z0-9_] 可以缩短为 \w
  4. 反斜杠需要双重转义。

试试这个正则表达式:

^[\\w\\s\\r!$()*,./:;=?@`{}\\[\\]~|-]+$

关于Java 正则表达式不匹配使用 Apache RE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28658691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com