正则表达式——行起始/结束位置

  单词边界匹配的是某个位置而不是文本,在正则表达式中,这类匹配位置的元素叫做锚点(anchor),它用来“定位”到某个位置。常用的锚点还有^和$,它们分别匹配字符串的开始位置和结束位置,所以可以用来判断“整个字符串能否由表达式匹配”。

平台行终止符
UNIX/Linux\n
Windows\r\n
Mac OS\n

 

// php

// ^ 和 $ 特点:进行正则表达式替换时并不会被替换。
// 也就是说,在起始/结束位置进行替换,只会在起始/结束位置添加一些字符,位置本身仍然存在。

$plainText = "line1\nline2\nline3";
$result = preg_replace('/$/m', '</p>', preg_replace('/^/m', '<p>', $plainText));

// ^ 和 $ 常用功能是删去多余的空白,包括行首尾的空白和空行。
$withSpaces = " begin\n between\t\n\nend ";
$spaceRegex = '/(^\s+|\s+$)/m';
$result = preg_replace($spaceRegex, '', $withSpaces);

// 不但第三行被删除,第二行和第四行也合并成一行,中间的\t\n\n全部删除了,第二行末尾没有了换行符;
// 而真正的目的其实只是将\t\n\n替换为\n。
// 仔细看看正则表达式(^\s+|\s+$)可以知道,在\s+$中,\s可以匹配\t和\n,
// 所以\s+$可以匹配开始的\t\n,同样^\s+可以匹配结尾的\n,所以\t\n\n经过两步被彻底删除

begin
betweenend

^和$的总结

模式

行为.NETJavaJavascriptPHPPythonRuby

^匹配字符串起始位置 √ √ √ √ √ √
^匹配字符串内部行起始位置      √
$匹配字符串结束位置 √ √ √ √ √ √
$匹配字符串末尾行终止符之前 √ √  √ √ √
$匹配字符串内部行结束位置      √
 支持多行模式 √ √ √ √ √ 

式    

 ^匹配字符串起始位置 √ √ √ √ √ 无此模式
 ^匹配字符串内部行起始位置 √ √ √ √ √ 无此模式
$匹配字符串结束位置  √ √  √ √ √ 无此模式
 $匹配字符串内部行结束位置 √ √ √ √ √ 无此模式
    \A 等于默认模式的^ √ √  √ 只能匹配字符串的起始位置 ×
 \Z 等于默认模式的$ √ √  √ 只能匹配字符串的结束位置 ×
 \z 匹配字符串的结束位置 √ √  √ 无 × 

转载于:https://www.cnblogs.com/gaara0305/p/10030794.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值