JavaScript 正则表达式符号出现
JavaScript regex symbol occurence
我在JS中的正则表达式有一些问题。我写了我的正则表达式:
/^([A-Z]+)'s+([^'s]+)'s+([^'s]+)'s('[.*'])'s+(.+)$/g
但是它给出了一个例子错误的结果:
WARN 2016-01-19 13:17:32,051 [localhost-startStop-1] Duplicate property values for key Data' Df : [ Date from] and [ Starting Day]
我希望正则表达式将字符串分成以下部分:
WARN
2016-01-19
13:17:32,051
[localhost-startStop-1]
Duplicate property values for key Data' Df : [ Date from] and [ Starting Day]
一切都很好,除了最后两部分。在那里我得到了:
[localhost-startStop-1] Duplicate property values for key Data' Df : [ Date from]
and [ Starting Day]
为什么?我想将字符串的那部分除以第一次出现。不知道为什么需要第二个。
PS:这是一个例子:https://regex101.com/r/wG5xV6/2
谢谢。
您需要使用与除换行符以外的零个或多个字符匹配的惰点匹配.*?
来限制.*
(尽可能多地匹配换行符以外的零个或多个字符):
^([A-Z]+)'s+([^'s]+)'s+([^'s]+)'s('[.*?'])'s+(.+)$
^^^
查看正则表达式演示
您还可以通过将[^'s]
替换为'S
来缩短模式:
^([A-Z]+)'s+('S+)'s+('S+)'s('[.*?'])'s+(.+)$
另一个演示
var re = /^([A-Z]+)'s+('S+)'s+('S+)'s('[.*?'])'s+(.+)$/gm;
var str = 'INFO 2016-01-20 08:03:21,113 [C3P0PooledConnectionPoolManager[identityToken->1bqu9pa9eq1cqr515yzwu7|6c240779]-HelperThread-#0] Connection to ''rander'' established. Notifying listeners...'nWARN 2016-01-19 13:17:32,051 [localhost-startStop-1] Duplicate property values for key Data' Df : [ Date from] and [ Starting Day]';
while ((m = re.exec(str)) !== null) {
document.body.innerHTML += "<pre>"+ JSON.stringify([m[1],m[2],m[3],m[4], m[5]], 0, 4) + "</pre>";
}
你可以试试这个:
-
^(.*?)('s*?)('S*?)('s*?)('S*?)('s*?)('[.*?'])('s*)(.*?)$
同时使用.
更改'S
-
'S
的意思是不懈怠。 -
?
意味着得到更少。 -
这句话的规则可以表述如下
begin + word + space + word + space + word + space + word + space + word + end
它必须首先找到]
,所以我们使用?
来找到它。如果要更改此句子的格式,可以使用替换它($1)'r($3)'r($5)'r($7)'r($9)
或其他。
相关文章:
- 包含转义符号的正则表达式
- 正则表达式上的重音符号有什么用
- 正则表达式替换为插入符号
- JavaScript正则表达式,带有URL激活以及微笑符号等
- javascript正则表达式匹配字符串包含阿拉伯特殊字符符号'œ;u0640
- 如何向正则表达式添加特殊符号以允许在文本字段中使用
- JavaScript正则表达式将连续的与号符号替换为分号
- 正则表达式以 @ 符号开头
- 使用正则表达式获取 $ 符号前的数字
- Javascript 正则表达式字符范围 A-z 匹配插入符号 (“^”)
- Javascript 正则表达式来匹配我的数组中的表情符号
- 正则表达式 - 从文本输入中删除美元符号
- 正则表达式字符串比较忽略符号
- 正则表达式尝试匹配符号前后的字符
- 通过正则表达式删除符号
- 正则表达式模式字母数字和美元符号
- 字母数字、空格和符号的正则表达式,不像我需要的那样匹配
- Javascript 正则表达式用于替换页面上所有链接 href 中的 & 符号
- 正则表达式 - +/- 符号和小数
- 为什么 javascript 正则表达式与某些表情符号不匹配