java 正则表达式(Invalid escape sequence (valid ones are \b \t \n \f \r \" &#

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 正则表达式(Invalid escape sequence (valid ones are \b \t \n \f \r \" &#相关的知识,希望对你有一定的参考价值。

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class test
public static boolean check(String phonenumber)
String phone = "(^[0-9]3,4\-[0-9]3,8$)|(^[0-9]3,8$)|(^\([0-9]3,4\)[0-9]3,8$)|(^00,113[0-9]9$)";
Pattern p = Pattern.compile(phone);
Matcher m = p.matcher(phonenumber);
return m.matches();


public static void main(String args[])
String s = "13942000603";
System.out.println(test.check(s));


错误:java 正则表达式(Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ ) 请问是啥原因呢?

把你的里面的\全部替换为\\即可

String reg = "(^[0-9]3,4\\-[0-9]3,8$)|(^[0-9]3,8$)|(^\\([0-9]3,4\\)[0-9]3,8$)|(^00,113[0-9]9$)";

String s = "13942000603";
System.out.println(s.matches(reg));

这样匹配不是更快么?
参考技术A

不同情况下的正则表达式:

    匹配首尾空格的正则表达式:(^\\s*)|(\\s*$)。

    匹配html标签的正则表达式:<(.*)>(.*)<\\/(.*)>|<(.*)\\/>。

    配空行的正则表达式:\\n[\\s| ]*\\r。

    整数或者小数:^[0-9]+\\.0,1[0-9]0,2$。

    只能输入数字:"^[0-9]*$"。

    只能输入n位的数字:"^\\dn$"。

    只能输入至少n位的数字:"^\\dn,$"。

    只能输入m~n位的数字:。"^\\dm,n$"

    只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。

    只能输入有两位小数的正实数:"^[0-9]+(.[0-9]2)?$"。

    只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]1,3)?$"。

    只能输入非零的正整数:"^\\+?[1-9][0-9]*$"。

    只能输入非零的负整数:"^\\-[1-9][]0-9"*$。

    只能输入长度为3的字符:"^.3$"。

    只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。

    只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。

    只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。

    只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。

    只能输入由数字、26个英文字母或者下划线组成的字符串:"^\\w+$"。

    验证用户密码:"^[a-zA-Z]\\w5,17$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。

    验证是否含有^%&',;=?$\\"等字符:"[^%&',;=?$\\x22]+"。

    只能输入汉字:"^[\\u4e00-\\u9fa5]0,$"。

    验证Email地址:"^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"。

    验证一年的12个月:"^(0?[1-9]|1[0-2])$"正确格式为:"01"~"09"和"1"~"12"。

    验证一个月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正确格式为;"01"~"09"和"1"~"31"。

    匹配中文字符的正则表达式: [\\u4e00-\\u9fa5]。

    匹配双字节字符(包括汉字在内):[^\\x00-\\xff]。

    应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)String.prototype.len=function()returnthis.replace(/[^\\x00-\\xff]/g,"aa").length;。

参考技术B \请用\\代替……
这个是基本的
如果有\\请用\\\\代替……
\本身是转义符……

也许不是这问题……
参考技术C 无效转义序列 参考技术D ^\([0-9]3,4\) ====> ^\\([0-9]3,4\\)

python正则表达式 re escape

背景
在使用python的过程中,你肯定对转义字符的使用苦恼过,因为有的时候我们需要使用一些特殊符号如”$ * . ^”等的原意,有时候需要被转义后的功能,并且转义字符地使用很繁琐,容易出错,那拯救你的就非re.escape莫属了。

escape(pattern)
Escape all non-alphanumeric characters in pattern.

定义:
re.escape(pattern) 可以对字符串中所有可能被解释为正则运算符的字符进行转义的应用函数。如果字符串很长且包含很多特殊技字符,而你又不想输入一大堆反斜杠,或者字符串来自于用户(比如通过raw_input函数获取输入的内容),且要用作正则表达式的一部分的时候,可以使用这个函数。

举例说明:

  • 1 > re.escape(‘www.python.org‘)
  • 2 ‘www\\.python\\.org‘
  • 3
  • 4 >re.findall(re.escape(‘w.py‘),"jw.pyji w.py.f")
  • 5 [‘w.py‘, ‘w.py‘]

这里的re.escape(‘w.py’)作为了函数re.findall函数的正则表达式部分。




以上是关于java 正则表达式(Invalid escape sequence (valid ones are \b \t \n \f \r \" &#的主要内容,如果未能解决你的问题,请参考以下文章

python正则表达式 re escape

react-native 开始给出 Invalid 正则表达式无效错误

解析我的 json 时出现问题,我得到这个“JSONDecodeError: Invalid \escape”

ValueError: Invalid \escape: 当在 Scrapy 中读取 json 作为响应时

notepad++ 正则表达式引擎 (scintilla) 是不是支持子字符串转义(smth. like "\Q.*[escaped string]()+\E")?

不重复数字的正则表达式