我正在尝试获取两者中任何一个的字符串内容。
TITLE1: *STUFF_TO_GET* TITLE2:...
TITLE1: *STUFF_TO_GET*
我的正则表达式目前看起来像这样
"TITLE1:\s*?(.+?)TITLE2|$"
原因是:* STUFF_TO_GET *可以与冒号齐平,这就是我包含
的原因"\s*?"
然后正则表达式应该抓住所有内容,直到它看到TITLE2或字符串的结尾。任何帮助表示赞赏。
答案 0 :(得分:2)
轮换(|
)适用于他们所在的整个群组或整个群组,如果他们不在任何群组中。您尚未将更改与任何内容分组,因此您的版本将匹配TITLE1:\s*?(.+?)TITLE2
或 字符串的结尾,而不是其他内容。
你需要像这样对交替进行分组:
TITLE1:\s*?(.+?)(?:TITLE2|$)
将这两个懒惰的量词放在一起有点奇怪。如果您想在*STUFF_TO_GET*
之前允许空格,\s*
(无?
)稍微清楚一点:
TITLE1:\s*(.+?)(?:TITLE2|$)