- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 perl 脚本,其中的一部分要求我匹配字符串中所有出现的特定模式。自然地,正则表达式似乎已经足够强大了,但我就是无法正确处理这个特定的字符串。
正则表达式可能适用的文本类型的假设示例是:
1cat;2dog;!3monkey;!4horse;
如您所见,该行中存在多个数据条目(1cat、2dog 等),以分号分隔。该行的开头不包含分号,但末尾包含。我希望能够匹配所有没有被 ! 忽略的东西。在上面的示例中,1cat 和 2dog 将在列表上下文中匹配并返回,而 3monkey 和 4horse 则不会。
到目前为止,我尝试做的是使用负面回顾来仅注意没有 ! 的条目。像这样:
m/(?<!\!)(\w+)\;/g
但是,这不起作用,因为对于每个 !'ed 条目,正则表达式只匹配它后面的内容,直到分号。在示例中,捕获了 1cat 和 2dog,然后捕获了 monkey 和 horse。
我觉得这很容易做到,但我是正则表达式的新手,我想不出别的。
最佳答案
抛出 word boundary (\b
)在那里和you should be good :
(?<!!)\b(\w+);
你可以看出你的负向后视正在工作,但它仍然会匹配下一个字符之后的所有内容(horse
来自 !4horse
) .单词边界是零宽度断言,有点像不匹配任何内容的条件(如 anchor ^
和 $
)。它为此断言:(^\w|\w\W|\W\w|\w$)
。换句话说,任何时候一个单词字符 ([a-zA-Z0-9_]
) 紧挨着字符串的开头/结尾或一个非单词字符。
关于regex - 不知道如何正确使用环视来实现我的正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23961049/
我想在基于 DFA 的正则表达式匹配器中实现“词边界”匹配。谁能告诉我这是怎么做到的? 为了提供一些背景知识,我目前正在使用“dk.brics.automaton”库,但它不支持断言(例如 \b,字边
我是一名优秀的程序员,十分优秀!