我需要JavaScript代码中的正则表达式模式才能识别以下文本
[2018-04-17 22:31:55,373] WARN [Consumer clientId=consumer-1, groupId=console-consumer-47514] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)[2018-04-17 22:31:55,430] WARN [Consumer clientId=consumer-1, groupId=console-consumer-47514] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)[2018-04-17 22:31:55,549] WARN [Consumer clientId=consumer-1, groupId=console-consumer-47514] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)[2018-04-17 22:31:55,755] WARN [Consumer clientId=consumer-1, groupId=console-consumer-47514] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)[2018-04-17 22:31:56,221] WARN [Consumer clientId=consumer-1, groupId=console-consumer-47514] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
JavaScript代码从文件中读取这些数据,并使用rexexp模式
进行数学运算匹配上述数据的简单正则表达式模式是什么?
答案 0 :(得分:0)
您的正则表达式[+-]?[0-9][0-9_]*\.[0-9de+-]*
与123
和123_txt
不匹配,因为这些值不包含在您的正则表达式中不可选的点\.
。
您可以将该点设为可选\.?
,但是您必须考虑最后两个示例中的下划线_
以及不属于正则表达式的缺失txt
。
您可以做的是更新正则表达式以匹配字符串^[0-9]+
开头的一个或多个数字,并在数字可选后生成.23e4
和_txt
等2个模式。
您的示例不包含前导+
或-
,因此您可能会从头开始忽略[+-]?
。 (您可以随时添加)
对于您的示例值,您可以尝试:
^[0-9]+(?:\.[0-9]+[de]?[0-9+])?(?:_txt)?$
<强>解释强>
^
在行首处断言位置[0-9]+
匹配一个或多个数字(?:
非捕获组
\.[0-9]+[de]?[0-9+]
匹配一个点,一个或多个数字,可选d
或e
,然后匹配一个或多个数字。)?
关闭非捕获组并将其设为可选(?:_txt)?
与_txt
$
断言行尾的位置