Tag: lookaround

这个正则表达式替换如何反转字符串?

这是一系列教育正则表达式文章的第四部分。 它展示了嵌套引用的组合(参见: 这个正则表达式如何找到三角形数?? )在断言中“计数”(参见: 我们如何匹配^ nb ^ n与Java正则表达式? )可用于反转字符串。 以编程方式生成的模式使用元模式抽象(请参阅: 此Java正则表达式如何检测回文? )。 这是系列中的第一次,这些技术用于替换而不是整个字符串匹配。 提供了完整的Java和C#实现。 鼓舞人心的报价包括在内。 使用正则表达式反转字符串似乎不是一个好主意,如果它完全可能,它甚至不会立即显而易见,如果是这样,人们可能会尝试这样做。 虽然它仍然不是一个好主意,但至少现在我们知道这是可能的,因为这是一种方法: C# ( 也在ideone.com上 ) using System; using System.Text.RegularExpressions; public class TwoDollarReversal { public static void Main() { string REVERSE = @”(?sx) . grab$2″ .Replace(“grab$2″, ForEachDotBehind( AssertSuffix(@”((.) \1?)”) ) ); Console.WriteLine( Regex.Replace( @”nietsniE treblA — hguone llew ti dnatsrednu […]

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

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

这个Java正则表达式如何检测回文?

这是一系列教育正则表达式文章的第三部分。 它遵循这个正则表达式如何找到三角形数字? (首先介绍嵌套引用)以及如何将^ nb ^ n与Java正则表达式匹配? (前瞻性“计数”机制进一步详述)。 这部分介绍了一种特定forms的嵌套断言,当与嵌套引用结合使用时,Java正则表达式可以匹配大多数人认为“不可能”的东西:回文! 回文的语言是非常规的 ; 它实际上是无上下文的 (对于给定的字母表)。 也就是说,现代正则表达式实现不仅仅识别常规语言,而且Perl / PCRE的递归模式和.NET的平衡组可以很容易地识别回文(参见: 相关问题 )。 但是,Java的正则表达式引擎既不支持这些“高级”function。 然而“某人” ( * wink * )成功编写了以下正则表达式,这似乎做得很好( 参见ideone.com ): public class Palindrome { // asserts that the entirety of the string matches the given pattern static String assertEntirety(String pattern) { return “(?<=(?=^pattern$).*)".replace("pattern", pattern); } public static void main(String[] […]