我使用正则表达式来判断'''是否被错误地识别为'e'(例如:Te 23,4表示T€23,4或e 23,4€23,4等等上)。就我而言,表达式^(T|(?i)(Mio)|(Million)(?-i))?( )?[e]( )?\d*$
效果很好。但是有一种情况,我的表达不起作用。如果在'e'(“e”)之前和之后有空格,则表达式不起作用。
如何扩展我的表达式以便不考虑这种情况?我认为至少在'e'之前或之后必须有一个角色,但我不知道如何在我的表达中实现它。
此正则表达式(((.)[e])|([e](.)))
适用于空白问题,但如何合并两个表达式?
答案 0 :(得分:1)
在你的正则表达式中,第一个交替组是可选的(?
匹配1或 0 次),以及数字匹配部分(*
匹配0或更多字符)。
所以,关键在于强制要求:
(^|T|(?i:Mio|Million))( ?)e( ?)\d+
^^ ^^
请参阅regex demo。 ^
移至备用组(增强一点),\d
使用+
( 1 或更多次)量化。
<强>详情
(^|T|(?i:Mio|Million))
- 其中一个替代方案:
^
- 字符串开头T
- T
(?i:Mio|Million)
- 以不区分大小写的方式匹配2个备选项的修饰符组:Mio
或Million
( ?)
- 可选空格e
- e
( ?)
- 可选空格\d+
- 一位或多位数。