你好,
我需要提取字符串的一部分,如下所示:
"some_text MarkerA some_text_to_extract MarkerB some_text"
"some_text MarkerA some_text_to_extract"
在这两种情况下,我都需要提取 some_text_to_extract
。
MarkerA
, MarkerB
- 预定义的文本字符串。
我试过这个正则表达式,但没有成功:
".*\sMarkerA(.*)MarkerB.*" - does not work in case 2
".*\sMarkerA(.*)(?=MarkerB)?.*" - wrong result "some_text_to_extract MarkerB some_text"
".*\sMarkerA(.*)(?:MarkerB)?.*" - does not work at all
你能帮我解决这个问题吗?
最佳答案
首先去掉开头和结尾的.*
;您不需要匹配整个字符串。然后使用交替来匹配结束定界符或字符串结尾。
"MarkerA(.*?)(?:MarkerB|$)"
关于javascript - 提取两个标记之间的子字符串。第二个 token 可能丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1083896/