社区首页 >问答首页 >为什么前导空间阻止正则表达式匹配?

为什么前导空间阻止正则表达式匹配?
EN

Stack Overflow用户
提问于 2014-08-25 12:10:12
回答 1查看 62关注 0票数 0

我有一个正则表达式'(\<link [^\>]+\>)',它匹配得很好,但是在前面添加了一个空格,但是它没有:' (\<link [^\>]+\>)' (没有')。

当我使用正则表达式来匹配一个link标记时,它完全匹配:

代码语言:javascript
代码运行次数:0
复制
$ echo '<para>Please see Listing <link href="#lst:11-alg1">2.1</link> with the' \
    | perl -pe 's|(\<link [^\>]+\>)|###|g'
<para>Please see Listing ###2.1</link> with the

如您所见,<link...>###替换--因此正则表达式匹配。

当我在正则表达式之前添加一个空格时,它不再匹配任何

代码语言:javascript
代码运行次数:0
复制
$ echo '<para>Please see Listing <link href="#lst:11-alg1">2.1</link> with the' \
    | perl -pe 's| (\<link [^\>]+\>)|###|g'
<para>Please see Listing <link href="#lst:11-alg1">2.1</link> with the

结果仍然是原始文本,没有替换发生-- regexp没有匹配。

我认为问题是贪婪的匹配(但我无法想象在哪里),我玩了+?-modifiers和\s,但没有效果。而且也不是regexp以' '开头:当我将Listing添加到模式中时,它也不匹配:

代码语言:javascript
代码运行次数:0
复制
$ echo '<para>Please see Listing <link href="#lst:11-alg1">2.1</link> with the' \
    | perl -pe 's|Listing (\<link [^\>]+\>)|###|g'
<para>Please see Listing <link href="#lst:11-alg1">2.1</link> with the

我甚至用Python:相同的结果做了同样的尝试,所以我的regexp肯定有问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-25 12:17:31

如果您将字符串复制到Notepad++中,这是一个特殊的字符,在清单ANSI(-欧元‡)之后。所以空间无法与之相匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25493601

复制
相关文章
[剑指offer] 正则表达式匹配
请实现一个函数用来匹配包括’.’和’*’的正则表达式。模式中的字符’.’表示任意一个字符,而’*’表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配
尾尾部落
2018/09/04
1.3K0
正则表达式匹配
该文讲述了如何用正则表达式匹配包括‘.’和‘*’在内的正则表达式。‘.’表示任意一个字符,而‘*’表示它前面的字符可以出现任意次(包含0次)。该算法利用动态规划的思想,结合字符串和模式的特点,进行匹配。
用户1148830
2018/01/03
1.6K0
正则表达式匹配_正则表达式匹配字符串长度
请实现一个函数用来匹配包括’.’和’*’的正则表达式。模式中的字符’.’表示任意一个字符,而’*’表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配
全栈程序员站长
2022/09/19
2K0
NodeJs前导课
NodeJs前导课 了解后端 后端分层 node的思想 具有模块化 了解后端 后端分层 web层 接收和发送Http请求,还需要校验参数是否合法,将参数封装成对象,也可以成为web层,controller层 业务逻辑层 xxxService,也称为服务成,处理业务逻辑 DAO层 DB,存取数据 持久层 文件,数据库 这里的数据库有两种,一种是关系型数据库(Msql),还有一种是非关系型数据库(MongoDB) node的思想 具有模块化 需要require和 module.exports 在前
envoke
2020/09/17
2880
正则表达式范围匹配
近期小编在进行评测语料的制作时,涉及到一些复杂字符串的过滤和提取等内容,例如找出某一句话中在某个特定语句结构下出现的文字,虽然使用循环,if-else等语句可以搞定,但是比较麻烦,使用正则表达式处理就比较方便。
用户5521279
2020/03/19
3.2K0
正则表达式匹配网址
正则表达式 "(http|ftp|https):\\/\\/[\\w\\-_]+(\\.[\\w\\-_]+)+([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?^=%&/~
红目香薰
2022/11/30
1.5K0
正则表达式之贪婪匹配 VS 非贪婪匹配
我们知道,许多程序设计语言都支持利用功能强大的正则表达式进行字符串操作,SAS中也有用正则表达式的PRX Function,平时在写正则表达式的时候会常碰到贪婪匹配与非贪婪匹配的问题。
专业余码农
2020/07/16
2.4K0
Java正则匹配空格_js正则表达式匹配空格
针对tab键带来的多个空格问题,有时候我们针对带空格的一行数据要进行切割,如果有多个空格就会出现就会切割空格出现,我们想把空格都去掉,所以需要用到某些方法。
全栈程序员站长
2022/11/09
11.1K0
正则表达式 “双向最小匹配”
最近做一个 字符串查找的例子从字符串中提取制定内容 如下: String input = " rel=\"shadowbox;width=720\">外観図面"; 需要提取   "auth
明明如月学长
2021/08/27
1.9K0
LeetCode【10】-- 正则表达式匹配
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。
秦怀杂货店
2022/02/15
1.2K0
Python正则表达式:最短匹配
目录[-] 最短匹配应用于:假如有一段文本,你只想匹配最短的可能,而不是最长。 例子 比如有一段html片段,<a>this is first label</a><a>the second labe
jhao104
2018/03/20
2.9K0
10. 正则表达式匹配
给定一个字符串 (s) 和一个字符模式 (p)。实现支持 ‘.’ 和 ‘*’ 的正则表达式匹配。
张伦聪zhangluncong
2022/10/26
7480
Perl正则表达式:正则匹配
我们已知在Perl中正则表达式被称为模式,这种模式(也即正则表达式)可以放在由成对符号(例如()、<>、{}等)或者一对不成对的符号(例如//、!!、^^等)组成的界定符内,并在界定符前用小写字母指定模式的种类。当然我们不希望界定符和正则表达式的符号有所冲突(如果实在有冲突可以使用反斜杠转义),事实上最常用的界定符为双斜杠//。在Perl中有很多处理模式,其中最简单的为匹配模式m//,或者也可以理解为查找模式。由于正则表达式本身就有匹配的含义,以双斜杠作为定界符时m可以省略。其他处理模式详见下一小节。
SYSU星空
2022/05/05
4.2K0
Perl正则表达式:正则匹配
10. 正则表达式匹配
给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。
用户3519280
2023/07/08
1610
Perl正则表达式 模式匹配[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142836.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/25
1.4K0
正则表达式-3.位置匹配
^匹配字符串的开头。 $匹配字符串的结尾。 注意:^出现在一个字符串集合中时(左方括号[后面),表示求非。
悠扬前奏
2019/05/28
9080
实现正则表达式匹配算法
在正则表达式匹配规则中:.代表任意一个字符;* 代表它前面的字符可以出现任意次(含0次)。例如:字符串dpaaab与规则d.a*b匹配(所有字符匹配模式)。
神奇的程序员
2022/04/10
5590
实现正则表达式匹配算法
正则表达式 - 简单模式匹配
        这里所用文本是《学习正则表达式》这本书带的,是《抒情歌谣集》(Lyrical Ballads, London, J.&A. Arch, 1798)中收录的塞缪尔·泰勒·柯勒律治的一首诗“The Rime of the Ancient” 的前几行。为了演示正则表达式的单行模式与多行模式,特意生成了带有换行符(ascii 10)的单个行,和不带换行符的多个行。
用户1148526
2023/05/01
7920
正则表达式 - 简单模式匹配
Python 正则表达式(匹配开头结尾)
问题场景 有时候如果只写了匹配的规则,但是没有定义匹配的开头以及结尾,可能匹配出来的结果就并不一定是自己想要的。 # 例如:如果只是单纯写了前面的匹配规则,就算输入的值后面多了一个 m,也是不会报错的。 # 这种结果,在设置邮箱的时候是不允许的。 In [10]: re.match('\w{4,20}@163\.com','laowang@163.comm').group() Out[10]: 'laowang@163.com' In [11]: # 其实只要
Devops海洋的渔夫
2019/05/31
5.4K0
点击加载更多

相似问题

没有临时筛选器视图的共享Google工作表中的范围排序

20

Google筛选视图问题

10

当通过Google表单输入新数据时,如何自动刷新Google中的筛选器视图?

100

如何删除Google电子邮件的垃圾邮件筛选器

20

如何在使用google工作表中的筛选视图时添加行计数?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档