Regex-选择字符串中的模式

Regex-选择字符串中的模式,regex,regex-lookarounds,Regex,Regex Lookarounds,我是新加入Regex的,面临着一个复杂的问题 我只想从以下列表项中选择金额+货币 例如:150,00欧元-100,00天秤座等 Monto: 150,00 EURO Monto: 7.350,00 PESO URUGUAY | Pesos: 12.495,00 |Sucursal: 36| Monto: 2.500,00 PESO URUGUAY Monto: 200,00 U$S EEUU | Pesos: 12.550,00 Monto: 50,00 U$S EEUU Monto:

我是新加入Regex的,面临着一个复杂的问题

我只想从以下列表项中选择金额+货币

例如:150,00欧元-100,00天秤座等

Monto: 150,00 EURO
Monto: 7.350,00 PESO URUGUAY | Pesos: 12.495,00 |Sucursal: 36| 
Monto: 2.500,00 PESO URUGUAY 
Monto: 200,00 U$S EEUU | Pesos: 12.550,00 
Monto: 50,00 U$S EEUU 
Monto: 700,00 REAL | Pesos: 10.500,00 | Sucursal: 101 
Monto: 100,00 LIBRA ESTERLINA | Pesos: 8.500,00 | Sucursal: 12
Monto: 5.000,00 PESO CHILENO | Pesos: 400,00 | Sucursal: 101
我的正则表达式测试:

我尝试了各种组合和公式,但没有成功地分离出金额+货币。 我还试图选择所有字符串,直到边界“|”(第一个竖条)为止,但它不起作用


欢迎任何帮助和解释,谢谢社区!:)

对于正则表达式来说是个新概念,但是类似的东西呢


(?通过将金额和货币组合在一起,可以使模式更加具体

  • \b
    单词边界,以防止单词成为较长单词的一部分
  • [0-9]+
    匹配1+个数字
  • (?:[,][0-9]+)*
    重复0+次,匹配点或逗号和1+位
  • [\t]+
    匹配1+个空格或制表符
  • (?:
    非捕获组以匹配其中一个备选方案
    • Euro | PESO乌拉圭| U\$S EEUU | REAL | LIBRA ESTERLINA | PESO CHILENO
  • 关闭非捕获组

有关状态的文档
要匹配元字符,请使用反斜杠将其转义


您可以查看文档,看看您是否使用了正确的函数来接受正则表达式。

感谢演示,但您还需要在问题中指出您想要匹配的确切内容。您的接受标准是什么?您可以将备选方案组合成
\b[0-9]+(?:[,][0-9]+)*[\t]+(?:Euro | PESO乌拉圭| U\$S EEUU | REAL | LIBRA ESTERLINA | PESO CHILENO)
数字匹配不具体。谢谢!就我而言,不幸的是它不起作用,因为我使用的是Regex RE2(来自谷歌营销产品)而且它不接受完全匹配\$…谢谢,非常漂亮的解决方案:在我的情况下,它不幸不起作用,因为我使用的是Regex RE2(来自谷歌营销产品)而且它不接受完全匹配\|@ELT,我很困惑,因为RE2文档建议完全像这样避开管道符号。我想我还不太熟悉,无法告诉你为什么它不起作用。对不起。@ELT,你运气好吗?我在谷歌电子表格
RegexExtract
上试过一些东西,希望它能模仿你的行为正在体验。是否
“\d*?\d*,?\d+[^\|]*”
为你工作?如果问题已经解决。请不要忘记接受答案以关闭你的线程。感谢你的回答!Regex RE2非常严格,而谷歌营销产品(如谷歌数据工作室)对此也非常严格……我终于不能做我想做的事了,但这并不重要。首先,发现新的Regex技巧很有趣所有:)为什么
\b[0-9]+(?:[,][0-9]+)*[\t]+(?:欧元|乌拉圭比索| U$S EEUU | REAL | LIBRA ESTERLINA |比索CHILENO)
而不是
:[0-9.,][\t]+(?:欧元|乌拉圭比索| U$S EEUU | REAL | LIBRA ESTERLINA |比索CHILENO |我想我明白你的问题了.+
匹配列出的任何字符的1+次出现次数。这意味着is也将只匹配
..,,,,,
而不匹配任何数字。如果使用
[0-9.,]。+
它将只匹配列出的字符的一次出现次数和任何字符(由于
)1次或多次,这将首先匹配所有字符。
[0-9,.].+(Euro|URUGUAY|EEUU|CHILENO|ESTERLINA|REAL)
(?<=Monto:\s).*?(?=\s\||$)
\b[0-9]+(?:[.,][0-9]+)*[ \t]+(?:Euro|PESO URUGUAY|U\$S EEUU|REAL|LIBRA ESTERLINA|PESO CHILENO)