Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试定义某些RegularExpression时出现无效的转义序列错误_Java_Android_Regex - Fatal编程技术网

Java 尝试定义某些RegularExpression时出现无效的转义序列错误

Java 尝试定义某些RegularExpression时出现无效的转义序列错误,java,android,regex,Java,Android,Regex,我正在尝试定义一些正则表达式 String passwordPattern="((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})"; String imageFileExtensionPattern="([^\s]+(\.(?i)(jpg|png|gif|bmp))$)"; String HTMLtagPattern="<("[^"]*"|'[^']*'|[^'">])*>"; String ExtractHTMLlinkPa

我正在尝试定义一些正则表达式

String passwordPattern="((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
String imageFileExtensionPattern="([^\s]+(\.(?i)(jpg|png|gif|bmp))$)";
String HTMLtagPattern="<("[^"]*"|'[^']*'|[^'">])*>";
String ExtractHTMLlinkPattern="\s*(?i)href\s*=\s*(\"([^"]*\")|'[^']*'|([^'">\s]+))";

由于Java将
\
视为字符串文本中的转义字符,因此需要在模式中转义它们,因此它们将被解释为正则表达式的一部分(而不是普通的转义字符):

String passwordPattern=“((?=.*\\d)(?=.[a-z])(?=.[a-z])(?=.[@#$%])。{6,20}”;
字符串imageFileExtensionPattern=“([^\\s]+(\\.(?i)(jpg|png|gif|bmp))$”;
字符串HTMLtagPattern=“])*>”;
String ExtractHTMLlinkPattern=“\\s*(?i)href\\s*=\\s*(\”([^\“]*\”)”|“[^']*'|”([^'\“>\\s]+)”;
您需要避开反斜杠:即写
\
而不是
\


\
用于特殊字符的字符串文本:例如,
\t
是一个选项卡。因此,如果你想要一个实际的反斜杠,你需要写代码> \\//> > /p> < p>如果java使用C++风格的字符串引用,需要双引号和转义符(或者是TrtraRMS,这可能是MS专用的)。p> 如果是这样,这些应该是新字符串。其中一个正则表达式已“转义”。
最后一个正则表达式有一些
引号。 我使用RegexFormat对每个文件进行格式化以进行检查,然后将它们打包成C样式的字符串

 passwordPattern="((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
 imageFileExtensionPattern="([^\\s]+(\\.(?i)(jpg|png|gif|bmp))$)"
 HTMLtagPattern="<(\"[^\"]*\"|'[^']*'|[^'\">])*>";
 ExtractHTMLlinkPattern="\\s*(?i)href\\s*=\\s*(\"([^\"]*\")|'[^']*'|([^'\">\\s]+))";
 emailPattern="(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|”(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*”)@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])";


 (?:
      [a-z0-9!#$%&'*+/=?^_`{|}~-]+ 
      (?: \. [a-z0-9!#$%&'*+/=?^_`{|}~-]+ )*
   |  ”
      (?:
           [\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f] 
        |  \\ [\x01-\x09\x0b\x0c\x0e-\x7f] 
      )*
      ”
 )
 @
 (?:
      (?:
           [a-z0-9] 
           (?: [a-z0-9-]* [a-z0-9] )?
           \.
      )+
      [a-z0-9] 
      (?: [a-z0-9-]* [a-z0-9] )?
   |  \[
      (?:
           (?:
                25 [0-5] 
             |  2 [0-4] [0-9] 
             |  [01]? [0-9] [0-9]? 
           )
           \.
      ){3}
      (?:
           25 [0-5] 
        |  2 [0-4] [0-9] 
        |  [01]? [0-9] [0-9]? 
        |  [a-z0-9-]* [a-z0-9] :
           (?:
                [\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f] 
             |  \\ [\x01-\x09\x0b\x0c\x0e-\x7f] 
           )+
      )
      \]
 )
passwordPattern=“((?=.*\\d)(?=.[a-z])(?=.[a-z])(?=.[@#$%])。{6,20}”;
imageFileExtensionPattern=“([^\\s]+(\\.(?i)(jpg|png|gif|bmp))$”
HTMLtagPattern=“])*>”;
ExtractHTMLlinkPattern=“\\s*(?i)href\\s*=\\s*(\”([^\“]*\”)”[124;“[^']*'”[124;”([^'\“>\\ s]+)”;
(5)以下以下以下:(:(:(:(:(a-z0-10-10-10-10-10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10)以下以下以下:(:(:(:(5)以下以下以下以下以下以下以下:(:(:(:(10)以下以下以下以下以下以下:(:(:(1-a-10 10-10 10-10 10 10 10-10 10 10 10 10 10 10 10 10 10 10 10 10 10 10-5 5 5 5 5-10-10-10 10 10 10 10 10 10 10 10 10 10 10 10 10 10-5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5)以及以及以及以及[a-z0-9-]*[a-z0-9])?\\\]+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\[(?:(?:(?:):25[0-5]| 2[0-4][0-9][01]?[0-9][0-9]?)\\\\\]{3}(?:25[0-5]| 2[0-4][0-9]|[01]?[0-9][0-9]?[a-z0-9-][a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)”;
(?:
[a-z0-9!#$%&'*+/=?^{124;}~-]
(?:\.[a-z0-9!#$%&'*+/=?^{{124;}~-]+)*
|  ”
(?:
[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]
|\\[\x01-\x09\x0b\x0c\x0e-\x7f]
)*
”
)
@
(?:
(?:
[a-z0-9]
(?:[a-z0-9-]*[a-z0-9])?
\.
)+
[a-z0-9]
(?:[a-z0-9-]*[a-z0-9])?
|  \[
(?:
(?:
25 [0-5] 
|  2 [0-4] [0-9] 
|  [01]? [0-9] [0-9]? 
)
\.
){3}
(?:
25 [0-5] 
|  2 [0-4] [0-9] 
|  [01]? [0-9] [0-9]? 
|[a-z0-9-]*[a-z0-9]:
(?:
[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]
|\\[\x01-\x09\x0b\x0c\x0e-\x7f]
)+
)
\]
)

谢谢,但是..HTMLtagPattern和ExtractHTMLlinkPattern@AndreaF;您需要在任何字符串中使用“\\”作为反斜杠。@AndreaF您还需要使用
\”
来表示字符串中的双引号。查看我的更新答案。我只能接受答案,但也可以向上投票;)一个好的选择——我也投了更高的票——主要是因为它还提到了
\“
String passwordPattern="((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
String imageFileExtensionPattern="([^\\s]+(\\.(?i)(jpg|png|gif|bmp))$)";
String HTMLtagPattern="<(\"[^\"]*\"|'[^']*'|[^'\">])*>";
String ExtractHTMLlinkPattern="\\s*(?i)href\\s*=\\s*(\"([^\"]*\")|'[^']*'|([^'\">\\s]+))";
 passwordPattern="((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})";
 imageFileExtensionPattern="([^\\s]+(\\.(?i)(jpg|png|gif|bmp))$)"
 HTMLtagPattern="<(\"[^\"]*\"|'[^']*'|[^'\">])*>";
 ExtractHTMLlinkPattern="\\s*(?i)href\\s*=\\s*(\"([^\"]*\")|'[^']*'|([^'\">\\s]+))";
 emailPattern="(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|”(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*”)@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])";


 (?:
      [a-z0-9!#$%&'*+/=?^_`{|}~-]+ 
      (?: \. [a-z0-9!#$%&'*+/=?^_`{|}~-]+ )*
   |  ”
      (?:
           [\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f] 
        |  \\ [\x01-\x09\x0b\x0c\x0e-\x7f] 
      )*
      ”
 )
 @
 (?:
      (?:
           [a-z0-9] 
           (?: [a-z0-9-]* [a-z0-9] )?
           \.
      )+
      [a-z0-9] 
      (?: [a-z0-9-]* [a-z0-9] )?
   |  \[
      (?:
           (?:
                25 [0-5] 
             |  2 [0-4] [0-9] 
             |  [01]? [0-9] [0-9]? 
           )
           \.
      ){3}
      (?:
           25 [0-5] 
        |  2 [0-4] [0-9] 
        |  [01]? [0-9] [0-9]? 
        |  [a-z0-9-]* [a-z0-9] :
           (?:
                [\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f] 
             |  \\ [\x01-\x09\x0b\x0c\x0e-\x7f] 
           )+
      )
      \]
 )