我正在尝试在 iOS 上创建正则表达式以获取 <BR>
之间的子字符串和 :
.
我已经试过了,但是不行:
<BR>[A-Z](.*[^<BR>]):
这是一个文本示例,我只想获取 THE TEXT I WANT
TEST TEST TEST TEST TEST TEST<BR>THE TEXT I WANT:more text <BR>TEST TEST TEST TESTTEST TESTTEST TEST<BR>TEST TESTTEST TESTTEST TESTTEST TEST<BR>THE TEXT I WANT:TEST TESTTEST TESTTEST TESTTEST TEST
我的正则表达式似乎在第一个 :
之后得到文本并在第二个 :
之后停止我对此不感兴趣。
我想要 THE TEXT I WANT
两次都发生,没有别的。
我该怎么做?
最佳答案
我没有任何使用 Objective-C 的经验,所以我无法就实现给出真正的建议。此正则表达式适用于您提供的示例文本。将它与不区分大小写的选项一起使用。 BR 和冒号之间的文本位于捕获组 1 内。
<BR\s*/?\s*>([\w\s]+):
它只允许字母、数字、下划线和空白字符出现在 BR 标签和冒号之间。
您当然可以在字符类中添加其他字符,但是如果您添加所有允许您构建标签的字符,它将不再正常工作。
如果您的正则表达式引擎支持否定前瞻,您可以改用下一个正则表达式。将它与不区分大小写的选项一起使用。
BR 和冒号之间的文本位于捕获组 1 中。
<BR\s*/?\s*>(?![^:]+<BR\s*/?\s*>)([^:]+):
这是最后一个正则表达式的粗略分解:
<BR\s*/?\s*> #Match the starting BR tag.
(?![^:]+<BR\s*/?\s*>) #Make sure that there are no BR tags between this BR tag and the next colon character.
([^:]+): #GROUP 1: Match every character up to the next colon character.
关于ios - 获取 <BR> 和 : without <BR> inside the substring 之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16843003/