正则表达式匹配某些字符前的空格,但有一些例外
Regex to match white spaces before certain characters with some exceptions
我有这个正则表达式 ([ ][,.!?;:])
来检查字符串是否在某些标点符号 (,.!;:) 之前有白色 space。它工作得很好,但我需要一个冒号 (:) 标记的例外。只要冒号后面的字符不是斜杠 (/),我就想要一个匹配项。
您可以使用
([ ](?:[,.!?;]|:(?!\/)))
或者,
(?! :\/)( [,.!?;:])
参见regex demo #1 and regex demo #2。
详情:
[ ]
- a space(注意括号在这里没有用,除非你有自由间距模式(而不是 Java)
(?:[,.!?;]|:(?!\/))
- 两者之一
[,.!?;]
- 集合中的一个字符
|
- 或
:(?!\/)
- 冒号后面没有紧跟斜杠。
正则表达式 #2 详细信息
(?! :\/)
- 如果有一个 space,然后是一个冒号,然后是紧邻当前位置 [=44] 右侧的 /
,则匹配失败的否定前瞻=]
( [,.!?;:])
- 第 1 组:一个 space 然后是集合中的一个字符。
我有这个正则表达式 ([ ][,.!?;:])
来检查字符串是否在某些标点符号 (,.!;:) 之前有白色 space。它工作得很好,但我需要一个冒号 (:) 标记的例外。只要冒号后面的字符不是斜杠 (/),我就想要一个匹配项。
您可以使用
([ ](?:[,.!?;]|:(?!\/)))
或者,
(?! :\/)( [,.!?;:])
参见regex demo #1 and regex demo #2。
详情:
[ ]
- a space(注意括号在这里没有用,除非你有自由间距模式(而不是 Java)(?:[,.!?;]|:(?!\/))
- 两者之一[,.!?;]
- 集合中的一个字符|
- 或:(?!\/)
- 冒号后面没有紧跟斜杠。
正则表达式 #2 详细信息
(?! :\/)
- 如果有一个 space,然后是一个冒号,然后是紧邻当前位置 [=44] 右侧的/
,则匹配失败的否定前瞻=]( [,.!?;:])
- 第 1 组:一个 space 然后是集合中的一个字符。