当前位置: 首页 > 知识库问答 >
问题:

regex101和java代码之间的不同结果

范承教
2023-03-14

我有这个正则表达式:https://regex101.com/r/vxHtzh/1

我有四场比赛。

但是对于我简单的java代码,我有不同的输出。

    Pattern pattern = Pattern.compile("'([0-9a-zA-Z-[^\\x00-\\x7F]+ ]+(',')*)'",Pattern.MULTILINE);

    String line =  "( $th$.t == 'Vision'e' )  ||  ( $g$.rfd == 'servizio visione ù è al estero' )  ||  ( $b$.fg == 'città diversa nazionalita'' )  ||  ( $mh$.fgh != 'l'installazione di servizi e un po' )";

    Matcher m = pattern.matcher(line);

    while (m.find()) {
        System.out.println(m.group(0));
    }

输出:

'Vision'
'servizio visione ù è al estero'
'città diversa nazionalita'
'l'

我哪里做错了?

共有1个答案

微生雨泽
2023-03-14

要对regex中的< code>'\'进行转义,需要再添加一个< code>'\'。但是在java字符串中,您需要添加4次< code>'\'来匹配实际的正则表达式。

Pattern pattern = Pattern.compile("'([0-9a-zA-Z-[^\\\\x00-\\\\x7F]+ ]+(',')*)'",Pattern.MULTILINE);

String line =  "( $th$.t == 'Vision'e' )  ||  ( $g$.rfd == 'servizio visione ù è al estero' )  ||  ( $b$.fg == 'città diversa nazionalita'' )  ||  ( $mh$.fgh != 'l'installazione di servizi e un po' )";

Matcher m = pattern.matcher(line);

while (m.find()) {
    System.out.println(m.group(0));
}
 类似资料:
  • 问题内容: 我有一个大问题。我使用此C#函数对消息进行编码: 在Java方面,我使用以下代码段: 我的消息是:阻止|注释|文本!£$%&/()=?^€> <{}ç°§;:_-。,@#ùàòè+ 我有这个结果: 你能帮我吗??谢谢… 问题答案: 我的猜测是您似乎正在将ASCII字节与Latin1字节进行比较。尝试切换 对此 那可能会解决您的问题。 (或切换C#以使用Latin1) 程序中发生的事情是

  • 问题内容: 我正在尝试构建一个应用程序,该应用程序使用流音频输入(例如:麦克风中的一条线),并使用IBM Bluemix(Watson)进行语音转文本。 我简要修改了此处找到的示例Java代码。此示例发送一个WAV,但是我发送的是FLAC …这[无关]不相关。 结果很差,非常差。这是使用Java Websockets代码时得到的: 现在,将上面的结果与下面的结果进行比较。这些是发送相同内容但使用c

  • 问题内容: 我有两个不同的程序,分别希望在Python和Java中使用Murmur3散列相同的字符串。 Python版本2.7.9: 给出79267961763742113019008347020647561319L。 Java是Guava 18.0: 给出字符串“ 6778ad3f3f3f96b4522dca264174a23b”,转换为BigInterger给出1375370730566806

  • 问题内容: 这是我的问题: 我有一个JAVA函数来生成加密的字符串。我必须在PHP中做同样的事情。 我的Java函数: 我的PHP函数: 这两个函数的返回值不相同。我注意到的是,在编码为base 64之前,两个函数的结果相同。因此,对我而言,问题不在于密钥的生成,而在于编码。 有人能帮忙吗? 问题答案: 答案在PHP函数hash_hmac 的文档中。 设置为TRUE时,输出原始二进制数据。FALS

  • 我在oracle数据库上有一个奇怪的行为。我们制作了大约310万条记录的巨大插入。到目前为止一切都很好。 插入完成后不久(大约 1 太 10 分钟),我执行两个语句。 从表中选择计数(*)。 从表中选择* 第一条语句的结果很好,它给出了插入的行的确切数量。 第二个语句的结果现在是问题所在。例如,根据时间的不同,返回的行数比第一个语句的结果低约 500K。两种结果的差异随着时间的推移而减少。 因此,

  • 问题内容: 我有一个bash脚本( ScreamDaemon.sh ),其中添加了一个示例尚未运行的检查。 通常情况下,如果有脚本运行没有另一个副本, 的ps aux | grep ScreamDaemon.sh | wc -l应该返回 2 (它应该找到自己和 grep ScreamDaemon.sh ),但是它返回 3 。 因此,我尝试分析会发生什么,并在添加一些回声后看到: 我已经在脚本中添加