Tag: regex lookarounds

Java正则表达式带有积极面貌,背后是负面outlook

我试图从这种字符串中提取ou=persons,ou=(.*),dc=company,dc=org最后一个字符串后面紧跟一个逗号后面没有 (。*)。 在最后一种情况下,这应该给dc=company,dc=org 。 看看正则表达式,这看起来是一个积极的看法(前面)前面的负面看。 所以我已经实现了这个正则表达式: (?<=(,(?!.*\Q(.*)\E))).* ,但它返回,dc=company,dc=org和昏迷。 我想要没有昏迷的同样的事情。 我做错了什么?

使用`\ R`进行Java-8正则表达式负向观察

在回答另一个问题时 ,我写了一个正则表达式来匹配所有空格,最多包括一个换行符。 我使用负面的lookbehind为\R linebreak matcher做了这个: ((?<!\R)\s)* 后来我在考虑它,我说,哦,不,如果有\r\n ? 当然它会抓住第一个破线字符\r \n然后我会被我的下一个字符串前面的虚假\n卡住,对吗? 所以我回去测试(并且可能修复)它。 但是,当我测试模式时,它匹配整个\r\n 。 它与人们可能期望的\r \n离开\n不匹配。 “\r\n”.matches(“((?<!\\R)\\s)*"); // true, expected false 但是,当我使用\R 文档中提到的“等效”模式时,它返回false。 这是Java的一个错误,还是有匹配的正当理由?

Java正则表达式:否定前瞻

我正在尝试制作两个匹配URI的正则表达式。 这些URI的格式为: /foo/someVariableData和/foo/someVariableData/bar/someOtherVariableData 我需要两个正则表达式。 每个都需要匹配一个而不是另一个。 我最初提出的正则/foo/.+/bar/.+分别是:/ /foo/.+和/foo/.+/bar/.+ 。 我认为第二个正则表达式很好。 它只匹配第二个字符串。 然而,第一个正则表达式匹配两者。 所以,我开始玩(第一次)负向前瞻。 我设计了正则表达式/foo/.+(?!bar)并设置以下代码来测试它 public static void main(String[] args) { String shouldWork = “/foo/abc123doremi”; String shouldntWork = “/foo/abc123doremi/bar/def456fasola”; String regex = “/foo/.+(?!bar)”; System.out.println(“ShouldWork: ” + shouldWork.matches(regex)); System.out.println(“ShouldntWork: ” + shouldntWork.matches(regex)); } 当然,他们都决心要做到这一点。 谁知道我做错了什么? 我不需要使用Negative lookahead,我只需要解决问题,我认为负向前瞻可能是一种方法。 谢谢,

需要在java中将字符串拆分为两部分

我有一个字符串,其中包含一个连续的数字块,然后是一个连续的字符块。 我需要将它们分成两部分(一个整数部分和一个字符串)。 我尝试使用String.split(“\\D”, 1) ,但它吃掉了第一个字符。 我检查了所有的String API,但没有找到合适的方法。 做这件事有什么方法吗?

perl和java正则表达式function有什么区别?

关于支持哪些正则表达式术语,perl和java之间有什么区别? 这个问题仅与正则表达式隔离,并且特别排除了如何使用正则表达式的差异 – 即使用正则表达式的可用函数/方法 – 以及诸如java要求之间的语法差异以逃避反斜杠等。 特别感兴趣的是java对可变长度后视的部分/偶尔支持。