b
ab
1
a
ba
.*(?:(?!ab).).$
虽然它的缺点是,它不匹配一个字符的字符串。
您没有给我们语言,但是如果您的regex口味支持在断言后面看,这就是您需要的:
.*(?<!a)$
(?<!a)
是一个否定的lookbehind断言,它确保字符串(或带有m
修饰符的行)结尾之前不存在字符“a”。
在Regexr中查看
.*(?<!ab)$
问题内容: 给定以下内容: 我想捕捉: 什么Java正则表达式可以让我做到这一点? 我已经尝试过了,它对于“约翰·史密斯(123)”和“约翰·史密斯(123)(456)”都适用,但是对“约翰·史密斯”却不起作用。如何更改正则表达式以使其也可用于第一个输入? 问题答案: 您可以将第一个懒惰的人变成懒惰的人,然后用一个非捕获的可选组来包裹后面的部分: 参见正则表达式演示 实际上,如果将正则表达式与最后
问题内容: 我想测试一个字符串是否以a结束。我希望下面的Java行能打印出正确的文字。为什么打印错误? 问题答案: 在Java Regex中,(在String中的任意位置找到匹配项)和(与整个String匹配)之间存在区别。 String仅具有一个方法(实现等效于以下代码:),因此您需要创建一个与完整String匹配的模式:
我想在Java中使用Regex提取某种字符串。我目前有这样的模式: 应该匹配以“a”开头、以“se”结尾的字符串。这不起作用。我错过了什么吗? 删除了模式末尾的 \n 行并将其替换为“$”:仍然没有匹配项。正则表达式从我这边看起来是合法的。 我想提取的是从临时字符串中提取的“a se”。
从这个例子中,我需要将'some-text'和'more-text'匹配到一个lexer规则中的ANTLR4 lexer规则,并将'->'作为另一个规则。 我使用下面显示的lexer规则作为我的起点,但问题是NAMEDELEMENT规则中允许使用'-'字符,这会导致第一个NAMEDELEMENT匹配变成'some-text-',然后导致边缘规则无法捕获'->'。 我正在寻找一种方法来确保'-'不被
我有一个包含数千行的文本文件。这里有一个例子 我试图提取'nt60'、'nt50'末尾的字符串。 问题是会包含行尾字符() 我想使用正则表达式搜索来匹配从 (') 开始的字符串,但我不知道我应该用什么来匹配 。 有人能帮忙吗?
问题内容: 我有一个字符串。结尾是不同的,例如或。我要寻找的一件事是。 我如何匹配它,无论它是在字符串的中间还是在字符串的末尾?到目前为止,我已经知道了,但是该部分实际上并没有工作。我正在尝试使用它来匹配字符串的任何一个或结尾,但是字符串部分的结尾不起作用,因此此模式匹配第二个示例,但不匹配第一个示例。 问题答案: 使用: 请注意,当使用方括号表达式时,其中的每个字符有些例外都将按字面意义进行解释