Java 正则表达式:忽略字符前后的空格
我使用正则表达式来确定一个€是否被错误地识别为“e”(例如:Te 23,4表示T 23,4欧元或e23,4表示23,4欧元等等)。在我的例子中,表达式:Java 正则表达式:忽略字符前后的空格,java,regex,Java,Regex,我使用正则表达式来确定一个€是否被错误地识别为“e”(例如:Te 23,4表示T 23,4欧元或e23,4表示23,4欧元等等)。在我的例子中,表达式:^(T|(?i)(Mio)|(Million)(?-i))?()?([e]()?\d*$运行良好。但有一种情况下,我的表达不起作用。如果在“e”(“e”)前后有空格,则表达式不起作用 我如何扩展我的表达式以便不考虑这种情况?我认为至少在“e”之前或之后必须有一个字符,但我不知道如何在我的表达式中实现这一点 这个正则表达式(((()[e])|([e
^(T|(?i)(Mio)|(Million)(?-i))?()?([e]()?\d*$
运行良好。但有一种情况下,我的表达不起作用。如果在“e”(“e”)前后有空格,则表达式不起作用
我如何扩展我的表达式以便不考虑这种情况?我认为至少在“e”之前或之后必须有一个字符,但我不知道如何在我的表达式中实现这一点
这个正则表达式
(((()[e])|([e]())
可以解决空白问题,但是如何合并这两个表达式呢?在正则表达式中,第一个替换组是可选的(?
匹配1或0次),以及数字匹配部分(*
匹配0或更多字符)
因此,关键是要让它们成为强制性的:
(^|T|(?i:Mio|Million))( ?)e( ?)\d+
^^ ^^
看。^
被移动到交替组(增强了一点),并且\d
被量化为+
(1或更多次)
详细信息
-备选方案之一:(^ | T |)(?i:Mio | Million))
-字符串的开头^
-aT
T
-以不区分大小写的方式匹配两个备选方案的修饰符组:(?i:Mio | Million)
或Mio
Million
-可选空格(?)
-一个e
e
-可选空格(?)
-1个或多个数字\d+