我有以下可能的字符串,我需要匹配特定的字符。
可能匹配的字符串:
dsg.1.2.3.4.5.6.7.5 = STRING: 1234 blah blah blah
OR
dsg.1.2.3.4.5.6.7.5 = STRING: "1234 blah blah blah"
下面是我尝试过的正则表达式。它正在工作,但对于第一个字符串,它与“”匹配
\=\s*STRING\:\s(?=\")\"([^"]*)|([^:]*$)
为了匹配上述可能的字符串,我使用了与
dsg.1.2.3.4.5.6.7.5 = STRING: "1234 blah blah blah"
匹配良好的条件。不是
dsg.1.2.3.4.5.6.7.5 = STRING: 1234 blah blah blah
匹配后输出问题:
2. [29-58] ` 1234 blah blah blah`
需要的输出:
1. [29-58] `1234 blah blah blah` --> No space
请帮助我解决这个问题。
最佳答案
试试这个正则表达式:
=\s*STRING:\s("?)([^"]*)\1
无需使用前瞻,只需使用
("?)
匹配引用(如果存在),然后使用反向引用在最后再次匹配它。 STRING
后面的字符串将存储在 $2
.
关于正则表达式 - 与 : and space 匹配的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39474659/