求匹配<>内无空白字符的单引号包裹字符串的正则表达式
正则匹配需求:仅匹配<>内部无空白字符的字符串
示例与需求
'If
, is for any reason unwilling or unable to serve, <next.Person > shall instead serve as successor agent.'
'If, is for any reason unwilling or unable to serve, <next.Person> shall instead serve as successor agent.'
需要匹配第二个字符串,排除第一个。核心要求:字符串中所有被<>包裹的区段内部不能包含空白字符(正则中用\s表示),需匹配单引号包裹的全部内容,字符串其余部分可包含几乎所有有效字符。
正则解决方案
可以使用以下正则模式:
^'(?:[^'<]|<[^>\s]*>)*'$
模式解释
^':匹配字符串开头的单引号(?:[^'<]|<[^>\s]*>)*:非捕获分组,重复匹配两种合法内容:[^'<]:匹配除单引号和<之外的任意普通字符<[^>\s]*>:匹配合法的<>区段——以<开头,后续仅包含非>、非空白的字符,最终以>结尾
'$:匹配字符串结尾的单引号
这个模式会逐字符检查单引号内的内容,只要遇到任何包含空白字符的<>区段,就会匹配失败,完美区分符合要求和不符合要求的字符串。
内容的提问来源于stack exchange,提问作者MDMoore313
相关产品推荐
相关产品推荐

