lookahead相关内容
自从我开始写这个问题以来,我想我已经找到了我遇到的每个问题的答案,但我想我还是会发帖,因为它可能对其他人有用,更多的澄清可能会有所帮助. 我试图将正则表达式与 javascript 函数 split 一起使用.出于某种原因,即使在我调用 match 时找到匹配项,它也没有拆分字符串.我最初认为问题是在我的正则表达式中使用了前瞻.这是一个简化的例子: 不起作用: "aaaaBaaaa"
..
显然,您可以使用|(管道?)来表示OR,但是有没有一种方法也可以表示AND? 具体来说,我想匹配包含某个短语的所有内容的文本段落,但没有特定的顺序. 解决方案 使用非消耗正则表达式. 典型的(即 Perl/Java)符号是: (?=expr) 这意味着“匹配 expr 但之后在原始匹配点继续匹配." 您可以根据需要做任意多的这些,这将是一个“和".示例:
..
任务: - 给定:图像文件名列表 - 待办事项:创建一个文件名不包含“thumb"一词的新列表 - 即仅针对非缩略图图像(使用 PIL - Python 成像库). 我试过 r".*(?!thumb).*" 但它失败了. 我找到了在正则表达式前添加 ^ 并将 .* 放入负前瞻的解决方案(在 stackoverflow 上):r"^(?!.*thumb).*" 现在可以使用了.
..
我有一个字符串 foo-bar-bat.bla 我希望只匹配 foo 我有缺陷的模式同时匹配 foo 和 bar \w+(?=-.*\.bla) 如何丢弃 bar?或者甚至更好,我怎么能在 foo 之后停止匹配? 解决方案 您可以使用以下模式(只要您的字符串始终按照您所说的方式格式化): ^\w+(?=-.*\.bla) 在 Debuggex 上实时编辑 ^ 符号匹
..
好的,所以我想我已经掌握了否定的方法 - 现在只选择一个包含指定子字符串的匹配怎么办? 给定: 这是从 0 到 1 的随机信息位.这是我不想匹配的非随机信息这是这一点的结束这是从 0 到 1 的随机信息位.这是我想要匹配的随机信息这是这一点的结束 并尝试以下正则表达式: /(?s)This is a random bit(?:(?=This is a random).)*?This i
..
此问题的灵感来自将s/,(\d)/$1/与s/,(?=\d)//进行比较:前者使用捕获组仅替换数字,而不替换逗号,后者使用前瞻性确定逗号是否由数字代替.如此答案中所讨论的,为什么有时后者有时会更快? 解决方案 这两种方法做不同的事情,并且开销成本也不同.捕获时,perl必须复制捕获的文本.无需消耗即可进行前瞻性比赛;它必须标记开始的位置.您可以使用re 'debug'编译指示来查看正在发生
..
debian@wifi:~$ echo "348dfgeccvdf" | grep -oP "\d+(?=\w{6,10})" 348 debian@wifi:~$ echo "348dfgeccvdf" | grep -oP "(?=\w{6,10})\d+" 348 对于\d+(?=\w{6,10}),这是标准的正向向前表达. 正如WiktorStribiżew在帖子中所说的那样 位置
..
我需要一个正则表达式,匹配所有出现在引号(()之前的两个引号('').我对括号做了一个负面的展望,后跟了一个引号.但是为什么这不起作用: /(?!\()''/g 例如使用该字符串 (''test''test 它应该匹配第二个匹配项,但不匹配第一个匹配项,但它匹配两个匹配项. 当我使用完全相同的解决方案但检查换行而不是括号时,它工作正常: /(?!^)''/g 使
..
我需要以各种方式在Java中保存一些数据,分别保存为File,String和System.out ...,最后我得到了3种方法,它们几乎做同样的事情.因此,我将它们更改为使用OutputStream作为参数的单个方法.我向单个OutputStream写了一些东西,例如一些文本,一个序列化的对象,另一个序列化的对象,一些数字数据... 但是现在我被卡住了.我忽略了一个事实,即我无法区分已写的不
..
根据regular-expressions.info的环顾四周,引擎在进行前瞻后退了一步: 让我们再看一次内部,以确保您了解 前瞻的含义.让我们应用q(?= u)i退出.这 提前查找现在是正数,其后是另一个标记.同样,q 匹配q和u匹配u.同样,前瞻的匹配必须是 丢弃,因此引擎从字符串中的i返回到u.这 前瞻成功,因此引擎继续执行i.但是我不能 匹配你因此,此匹配尝试失败.其余所有尝试均失败
..
我有一个正向表达式,正向前进.正向超前依赖于字符串中存在"cfu/ml",但不将其包括在结果中. 这是正则表达式: ((((less|greater)\s*tha[nt]\s*)?[>
..
我正在尝试使用正则表达式从包含几篇文章的文件中提取场所.我知道场地以For/From开头,后跟日期,以星期几或作者的名字开头(如果缺少日期),我编写了以下正则表达式以匹配场地,但是,直到作者的名字,这意味着如果该文章有日期,日期也将出现在场地中. """((?
..
我有一个正则表达式试图按专业划分问题.说我有以下正则表达式: (?P[0-9x]+) 此问题很好用(正确匹配:7) (7)以下哪一项被认为是食道癌的危险因素? 为此(正确匹配:8和13) (8,13)30岁女性闭经,血清雌激素水平低和血清LH/FSH高,最可能的诊断是: 但不适用于此错误匹配(错误匹配:20个). 早孕自然流产(20周
..
我试图回答这个问题,其中OP具有以下字符串: "path:bte00250 Alanine, aspartate and glutamate metabolism path:bte00330 Arginine and proline metabolism" ,并希望将其拆分以获取以下列表: ['path:bte00250 Alanine, aspartate and glutama
..
我从CSV文件中获得了一行,其中"作为字段包围符,而,作为字段分隔符作为字符串.有时,数据中的"会破坏字段包围符.我正在寻找一个正则表达式删除这些". 我的字符串如下: my $csv = qq~"123456","024003","Stuff","","28" stuff with more stuff","2"," 1.99 ","",""~; 我看过此,但我不知道如何分辨只删
..
我正在尝试在逗号分隔的列表中搜索文件名: text.txt,temp_doc.doc,template.tmpl,empty.zip 我使用Java的regex实现.输出要求如下: 仅显示文件名,而不显示其扩展名 排除以"temp_"开头的文件 它应该像这样: 文本 模板 空 到目前为止,我已经设法编写了令人满意的正则表达式来应对第一个任务:
..
我正在使用JavaScript,尝试替换html标记内的属性,并提出了此正则表达式: /]*(attr)=['"]{1,1}([^'"\s]*)['"]{1,1}/ig; 这有效.但是,我希望能够指定查找包含属性值的相同类型的引号.因此,例如,我想指定这是否为形式,以便在SECOND引号中查找单引号,而不是双引号.相反的情况,
..
我正在尝试构建如下所示的正则表达式: [match-word] ... [exclude-specific-word] ... [match-word] 这似乎与否定的前瞻配合使用,但是当我遇到这样的情况时,我遇到了一个问题: [match-word] ... [exclude-specific-word] ... [match-word] ... [excluded word a
..
以下正则表达式可确保密码至少包含一个小写字母,一个大写字母,一个数字和一个特殊字符: ^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[^a-zA-Z0-9\s]).*$ 那行得通.在此基础上,我希望仅满足这些组中的两个才能使密码有效. 例如,这些将是有效的密码:aaaaa5,BFEWREWRE77,#2ccc. 我是否可以修改此正则表达式以支持
..
我正在为法律书籍汇编案件表.我已经将其转换为HTML,以便可以使用标签进行搜索和替换操作,而我目前在Kate工作.文本中引用了案例名称,这些案例的引用都在脚注中,例如 Smith v Jones127 ......... [other stuff including newline characters].......127 (1937) 173 ER 406;
..