深刻领悟正则相反引用和转义符

二、转义符

java转义符和正则表明式转义符,转义符和

举例来说来说,连续相同之3个数字的正则表明式的正经语法是:

 ([\d])\1{2}

然则若在java代码中如此形容,就会合出现语法错误,如下:

 String regEx = "([\d])\1{2}";

考虑到\号在java字符串的语法中属转义符,所以,需要之java的语法是:

 String regEx = "([\\d])\\1{2}";

为强化映像,再来拘禁下一个例证:前边总是相同的3各项数字,前边连续相同之老三各字符的正则表明式的标准语法是:

 (\d)\1{2}(.)\2{2}

假如在java中,是这样形容的:

 String regEx = "(\\d)\\1{2}(.)\\2{2}";

注意,\1和\2指的是patten的位置。

说到底让闹整段测试代码:

 @Test
public void test02(){
    // 要验证的字符串
    String str = "111";
    // 正则表达式规则
    String regEx = "([\\d])\\1{2}";
    //String regEx = "([\d])\1{2}";
    // 编译正则表达式
    Pattern pattern = Pattern.compile(regEx);
    // 忽略大小写的写法
    // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(str);
    // 查找字符串中是否有匹配正则表达式的字符/字符串
    boolean rs = matcher.find();
    System.out.println(rs);
}

http://www.bkjia.com/Javabc/1222181.htmlwww.bkjia.comtruehttp://www.bkjia.com/Javabc/1222181.htmlTechArticlejava转义符和正则表达式转义符,转义符和
举例来说,连续相同的3个数字之正则表明式的正式语法是: ([\d])\1{2}
可是若在java代码中这样…

$string = 'abcd';
$re = preg_replace('/(a)/', '\\1B',$string);
echo $re;

//结果
//aBcd

例子三:

正则表明式,在PHP中本人平日能由此到。用之景吧很多,比如,正则匹配配字符串,判断字符是否留存,正则替换等等。

解释: 这里的 \1
把是作为捕获组的反引用。

嗬是转义符?

例子五:

三、总结

 

$string = 'abcd';
$re = preg_replace('/(a)/', '\1B',$string);
echo $re;

//结果
//aBbcd    

 

2、PHP正则被之转义符,当遇多独`\` 的上,我们好事先“去掉”
一个,然后,在夺匹配。这样便哼精通啊。

解释:这里的`\\\1`,第一个`\`,转译了亚单`\`,那么虽然剩下了`\\1`,`\\` 输出 `\`,最后,就剩下 `1`了。

在PHP中我们就此
`\`
来转译一些出奇之字符。

解释:这里的` \\1
`,第一个`\`,转译了亚个`\`, 那么即便成为了 `\1B` , 其实效果跟例子三的 `\1` 是同等的。

例子二:

例子四:

一律、正则反引用

 

 

$string = 'abcd';
$re = preg_replace('/(a)/', '$1B',$string);
echo $re;


//结果
//aBbcd

此处用了正则的捕获组概念以及倒引用。

捕获组我们可自第一只`(`
向后数, 第一个括号里匹配到的内容,我们得用 \1 来引用,为了看之不问可知,特意拼接了
**
`A` ,其实我们还好为此
$+数字来代表第多少个捕获组。 这里能够用$1,效果和\1一样。**

例子一:

$string = 'abcd';
$re = preg_replace('/(a)/', '\1A',$string);
echo $re;

//结果
// aAbcd

1、PHP正则受的倒引用,\1
$1
效果是同的,大家且可拿来之所以。

$string = 'abcd';
$re = preg_replace('/(a)/', '\\\1B',$string);
echo $re;



//结果
//\1Bbcd

解释:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图