我有一个可以工作的正则表达式,但不幸的是,它不能在Java中工作,因为Java不支持这种类型的内联修饰符。
我已经阅读了有关此主题的内容,例如:
我的正则表达式:
(?(?=\d{1,2}[.]\d{1,2}[.]\d{2,4})somerandomtextwhichisnotinthetext|^((($|EUR)? ?[-+]?(\d{1,8}[.,])*\d+([.,]\d+)?)|([-+]?(\d{1,8}[.,])*\d+([.,]\d+)? ?($|€|EUR)?))$)
我还尝试了查找,但它应该匹配的模式有一个可变长度,很遗憾,这是不支持的。。。
正则表达式应该匹配所有这些模式(需要完全匹配)--
但不是这个:
它需要用Java实现。
但我仍然没有解决办法。。。
谢谢你的帮助!!!
这里的要点是,您需要使用第一部分作为负前瞻,以向另一个模式添加异常:
^(?!\d{1,2}[.]\d{1,2}[.]\d{2,4}$)((($|EUR)? ?[-+]?(\d{1,8}[.,])*\d+([.,]\d+)?)|([-+]?(\d{1,8}[.,])*\d+([.,]\d+)? ?($|€|EUR)?))$
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
查看regex演示
因此,与其要求使用异常模式然后无法匹配假字符串,不如简单地使用有效的匹配模式并在开始时添加异常。
我还看到了($欧元)
,您可能想在此处匹配美元符号。如果我是对的,请将其替换为
([$€]|欧元)
。另外,
($欧元)
可能还需要替换为
([$€]|欧元)
。
此外,考虑使用非捕获组而不是捕获组,因为您只表示对完全匹配值感兴趣。
我目前正在玩正则表达式,试图更好地理解它们,并且有一个我现在似乎正在努力的场景,因为我不知道这是否可以通过正则表达式来实现。 我有这样的文本字符串 该清单可能仍在进行中。我想匹配(选择)内部关键字之间的空格。因此,在第二行中,它将是和之间的空格。 和我能够匹配关键字中包含多个单词的行。将第一部分<代码>( 编辑:假设这些行之间还有一些其他文本,所以简单的< code>\b不能作为正则表达式使用。
我有以下示例文本 当我应用以下正则表达式时,当我打印第一个捕获组时,我期望以下输出 但是我最终得到的是 在我看来,由于某种原因,否定的先行部分被忽略了,因此正则表达式与整个字符串匹配。 真正让我困惑的是,积极的前瞻性正如我所期望的那样工作。例如,使用在打印第一个捕获组时返回以下内容 这是有道理的,所以我真的很困惑为什么消极的前瞻性没有正常运作。
我想要一个 Java 正则表达式字符串,它可以在字符串中找到所有元音,除非它们: 是第一个字符或 下划线后面的下一个字符 AREA_ID变为AR_ID LONG_NAME变成 LNG_NM 孤独的家变成了ALN 我曾经使用过http://gskinner.com/RegExr,现在我有了下面的正则表达式来替换所有元音字母,除非它是起始字符 我想不出第二部分怎么弄(忽略紧跟在下划线后面的元音)。
我有一些像这样的弦 我需要创建一个正则表达式,它将在没有空格的情况下获取内的所有内容。 使用下一个模式
问题内容: 我正在尝试对Elasticsearch查询进行否定前瞻,正则表达式为: 我要匹配的文本是: 归还了住宿费用,但仍存在建筑问题。喷洒化学药品会引起健康问题,并引起眼睛刺激。 我没有任何幸运。有人可以帮忙吗? ES查询: 问题答案: 您可以使用以下两种方法之一来解决此问题: 要么 带可选的(因为 默认情况下 为ON ) 它是如何工作的? 在常见的NFA正则表达式中,通常会有负面的环顾四周,
我试图捕捉两个最接近的短语之间的文本,包括这些短语,但消极的展望似乎在我的情况下不起作用。 因此,这是文本文件的一部分: 我需要捕捉每一对<代码> 我的正则表达式是: